- 다중 포인터
int a;
int *pa;
int ** ppa;
int ***pppa;
ex) x 98 의 주소는 * x 99에 담을 수 있음
역참조 * x 98 은 * x 98의 값을 가져옴
-----
#include <stdio.h>
int main(){
int a=1;
int *a1=&a;
int *a2=&a;
int *a3=&a;
int **a4=&a2;
int ***a5=&a4;
int ****a6=&a5;
int ****a7=&a5;
int *****a8=&a7;
printf("*****a8 : %d\n",*****a8);
*****a8=2;
printf("*****a8 =2 -> a : %d\n",a);
return 0;
}
---------
- 배열
선언 : 자료형 배열명[크기]
int nArray[5]={0}; -> int nArray[0]=0; //0 부터 시작
int nArray[1]=0;
int nArray[2]=0;
int nArray[3]=0;
int nArray[4]=0;
* stack은 높은 주소에서 낮은 주소로 메모리에 쌓인다
| [0]
| [1]
| [2]
| [3]
| [4]
sizeof(nArray); -> 5
* 선언시, 상수로는 지정가능하지만 변수로는 지정 불가
int a=4;
int nArray[a]={0}; //불가
하지만 선언이 끝난후에는 변수를 집어넣을 수 있음
-----------
- 배열의 특징
저장공간이 아니다
배열명자체가 배열의 시작주소([0])를 의미
int main(){
int nArray[5]={0};
nArray[0]=1;
nArray[1]=2;
nArray[2]=3;
nArray[3]=4;
nArray[4]=5;
return 0;
}
--------------
int i,j;
int num[9]={0};
printf("input Number : ");
scanf("%d", &j);
for(i=0;i<j;i++){
printf("num[%d] : %d \n",i, num[i]=i);
}
printf("\n");
return 0;
}
* 문자열의 끝에는 NULL('\0')이 자동으로 추가
-> 배열의 크기 : 필요한 문자수 +1 (NULL)
---------------
int nArray[4]={0,1,2,3};
char cArray[4]={'a','b','c'};
printf("&nArray = 0x%X \n", nArray);
printf("nArray[0] = %d &nArray[0]=0x%X\n",nArray[0],&nArray[0]);
printf("nArray[1] = %d &nArray[1]=0x%X\n",nArray[1],&nArray[1]);
printf("nArray[2] = %d &nArray[2]=0x%X\n",nArray[2],&nArray[2]);
printf("nArray[3] = %d &nArray[3]=0x%X\n",nArray[3],&nArray[3]);
printf("&nArray = 0x%X \n", cArray);
printf("cArray[0] = %d &cArray[0]=0x%X\n",cArray[0],&cArray[0]);
printf("cArray[1] = %d &cArray[1]=0x%X\n",cArray[1],&cArray[1]);
printf("cArray[2] = %d &cArray[2]=0x%X\n",cArray[2],&cArray[2]);
printf("cArray[3] = %d &cArray[3]=0x%X\n",cArray[3],&cArray[3]); //NULL 의 위치
printf("cArray = %s \n", cArray);
return 0;
}
-------------
int array[5]={1,2,3,4,5};
int * ptr=array;
int는 4 byte씩 올라 가기 때문에 포인터로 배열 지정시 처음 주소(1000) 후에 다음 숫자를 지정하기 위해서는 4를 더해줘야 함 (1004)
'C / C++' 카테고리의 다른 글
coding based on the basic functions (0) | 2014.09.04 |
---|---|
many questions (0) | 2014.08.28 |
function and pointer (0) | 2014.08.26 |
making codes (0) | 2014.08.25 |
functions made by myself (0) | 2014.08.20 |