C
포인터
포인터 변수 : 메모리의 주소 값을 저장하기 위한 변수
<포인터 변수 선언>
type * ptr;
=> type형 변수의 주소 값을 저장하는 포인터 변수 ptr의 선언
ex)
type * type형 포인터
type * ptr; type형 포인터 변수 ptr
*포인터 변수의 선언에 있어서 * 연산자의 위치는 상관x.
이렇게
<변수의 주소 값을 반환하는 & 연산자>
& 연산자의 피연산자는 변수 이어야 함. 상수는 피연산자가 될 수x.
변수의 자료형에 맞지 않는 포인터 변수의 선언은 문제가 됨.
포인터 형은 메모리 공간을 참조하는 기준이 됨.
<pnum은 포인터 변수 pnum이 가리키는 변수 num을 의미함>
ex)
//보니까 포인터는 임대 내놓은 집이고, 변수는 임대집 들어가는 사람? 으로 생각하면 될것같다 ㅋㅋ
일반 변수와 포인터 변수를 하나의 문장 안에서 동시에 선언하는 것도 가능
이렇게
'문장의 수가 적다고 좋은 코드는 아니다. 문장의 수가 많더라도 쉽게 읽히는 코드가 좋은코드이다!'
널 포인터
<포인터 초기화>
int * ptr1=0;
int * ptr2=NULL;
포인터를 초기화 할때 '널'은 아무데도 가리키지 않으므로 쓰레기값이 저장되지 않는다.
문제1. 풀이
포인터 ptr1에 num이 저장되고 ptr2에 ptr1에 있는 num이 또 저장된다.
따라서 (*ptr1)++; 에서 num이 1 증가되고, (*ptr2)++; 에서 num이 또 1이 증가되서 12가 된다.
문제2. 포인터,변수 두개 선언후 각각 포인터에 저장하고, 각각 10 증가, 10 감소 시킨 후 두개의 포인터가 가리키는 대상을 바꿔서 출력.
//Counting Stars 노래가 좋다...★
'언어 > C' 카테고리의 다른 글
[C] 포인터와 함수 (0) | 2018.10.10 |
---|---|
[C] 포인터와 배열(☆) (0) | 2018.10.09 |
[C] 1차원 배열 (0) | 2018.10.02 |
[C] 반복문 (C언어정석_5) (0) | 2018.10.01 |
[C] 도전프밍1 (0) | 2018.09.30 |
댓글