Please enable JavaScript.
Coggle requires JavaScript to display documents.
열혈 C프로그래밍 part 2. 포인터와 배열의 시작 - Coggle Diagram
열혈 C프로그래밍
part 2. 포인터와 배열의 시작
chapter 11
1차원 배열
배열
다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있는 것
배열의 선언 ex) int arr[4]
int : 배열을 이루는 요소(변수)의 자료형
arr : 배열의 이름
[4] : 배열의 길이
= int형 변수 4개로 이루어진 배열을 선언하되, 그 배열의 이름을 arr로 해라!
배열의 접근
배열의 위치정보를 명시하는 인덱스 값은 1이 아닌 0에서 부터 시작
배열의 모든 요소는 반복문을 이용해서 순차적으로 접근 가능
널 문자
문자열의 끝테 자동으로 삽입되는 문자
널 문자의 아스키 코드 값은 0이다.
='\0'과 0 은 동일하다
chapter 12
포인터의 이해
포인터 변수
메모리의 주소 값을 저장하기 위한 변수
포인터 변수의 선언
= type * ptr
type * : type형 변수의 주소 값을 저장하는 포인터 변수의 선언
ptr : 포인터 변수의 이름
포인터 형
int * : int형 포인터
doble * : double형 포인터
char * : char형 포인터
아래의 포인터 변수 선언은 모두 동일한 의미 갖는다.
= int* ptr
= int *ptr
= int * ptr
&연산자
피연산자의 주소 값을 반환하는 연산자
*연산자
포인터가 가리키는 메모리 공간에 접근할 때 사용하는 연산자
한문장에서의 변수와 포인터 변수의 선언
일반 변수와 포인터 변수를 하나의 문장 안에서 동시에 선언 가능
BUT, 선언하고자 하는 변수의 형이 다르면 달리해서 선언하는 것이 좋다.
Because, 문장의 수가 많더라도 쉽게 읽히는 코드를 좋은 코드로 인정
다양한 포인트 형이 존재하는 이유
포인터의 형은 메모리 공간을 참조하는 기준이 되기 때문
chapter 13
포인터와 배열! 함께 이해하기
포인터와 배열의 관계
배열의 이름 : 그 값을 바꿀 수 없는 '상수 형태의 포인터'
배열의 이름 : 배열의 시작 주소 값, 저장이 불가능한 상수
배열의 이름도 *연산 가능
포인터를 배열의 이름처럼 사용 가능
포인터를 대상으로 하는 증가 및 감소 연산
type형 포인터를 대상으로 n으 크기만큼 값을 증가 및 감소시, n* sizeof(type)의 크기만큼 주소 값이 증가 및 감소
*(++ptr)=20 : ptr에 저장된 값 자체를 변경
*(ptr+1)=20 : ptr에 저장된 값을 변경하지 않음
arr[i]==*(arr+i)
arr[i] 값은 arr 포인터의 i번째 주소에 들어있는 값과 동일하다.
문자열을 가리키는 포인터
변수 형태의 문자열
= char str[]="my string";
상수 형태의 문자열
= char* str ="your string"
포인터 배열
포인터 변수로 이뤄어져 주소의 값의 저장이 가능한 배열
문자열을 저장하는 포인터 배열 : 문자열의 주소 값을 저장할 수 있는 배열(char형 포인터 배열)
chapter 14
포인터와 함수에 대한 이해
함수의 인자
함수호출 시 전달되는 인자의 값은 매개변수에 복사가 된다.
함수 내에서 배열에 접근할 수 있도록 배열의 주소 값을 전달하는 것이 가능
= int ptr[] == int * ptr
함수내에서는 인자로 전달된 배열의 길리를 계산할 수 없다.
함수 호출 방식
call-by-value : 함수를 호출할때 단순히 값을 전달하는 형태의 함수호출을 의미
call-by- reference : 메모리의 접근에 사용되는 주소값을 전달하는 형태의 함수호출을 의미