11장 Summary
메모리는 데이터를 기준으로 주소가 매겨진다
포인터는 메모리의 주소를 저장할 수 있는 변수이다
변수 x의 주소를 추출하려면 printf("x의 주소: %p", &x);라고 하면 된다.
int *p의 의미는 정수를 가르키는 포인터이다
int 형 포인터 p가 가리키는 위치에 100을 저장하는 문장은 *p=100;이다
포인터가 아무것도 가리키고 있지 않는 경우에는 NULL값을 넣어두는 편이 좋다
배열 a에서 a는 첫번째 원소(=a[0])의 주소이다.
★배열의 이름은 첫번째 원소를 가르키는 포인터(포인터상수)와 같다
P가 포인터라면 p[2]는 수식 *(p+2)와 같다
★a+i는 &a[i]와 같고, *(a+i)는 a[i]와 동일하다
*p++의 의미는 p가 가르키는 값을 가져온 후에 p를 증가한다.
★(*p)++ : p가 가르키는 값을 가져온 후에 가르키는 값을 증가한다.
*++p : p를 증가시킨 수에 p가 가르키는 값을 가져온다
++*p : p가 가르키는 값을 증가시킨 후에 가져온다
사칙 연산 중에서 포인터에 대하여 적용할 수 있는 연산에는 덧셈과 뺄셈 이 있다.
int형 포인터 p가 80번지를 가리키고 있었다면 (p+1)은 84번지를 가리킨다
함수 호출시 인수 전달 방법 중에서 기본적인 방법은 "값에 의한 호출"이다.
★값에 의한 호출(call-by-value)은 복사본이 전달되고
이 방법만 C에서 지원한다.
★참조에 의한 호출(call-by-reference)은 원본이 전달되고
포인터를 이용해 간접구현이 가능하다.
'프로그래밍 > 쉽게 풀어쓴 C언어 Express' 카테고리의 다른 글
쉽게 풀어쓴 C언어 Express 11장 Programming (0) | 2018.11.13 |
---|---|
쉽게 풀어쓴 C언어 Express 11장 Exercise (1) | 2018.11.13 |
쉽게 풀어쓴 C언어 Express 10장 Programming (0) | 2018.11.06 |
쉽게 풀어쓴 C언어 Express 10장 Exercise (2) | 2018.11.02 |
쉽게 풀어쓴 C언어 Express 10장 Summary (0) | 2018.10.29 |