C언어의 배열, 포인터 정리.
1. 배열
2. 포인터
3. 배열과 포인터
배열(Array)
배열의 선언
데이터형 배열명 [요소 수(배열의 크기)] |
ex)
int num[10];
char textArray[100]; |
배열의 선언과 초기화
데이터형 배열명 [요소 수(배열 크기)]={값1, 값2, 값3...값n};
배열의 요소는 0부터 시작된다.
배열의 선언과 초기화를 같이 할 경우 배열의 크기는 생략이 가능하다. |
ex1) 각각 따로 값을 넣을 수도 있고 한꺼번에 넣을 수도
있다.
int num[0] = 1;
int num[1] = 2;
int num[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
char textArray[100] =
{ 'A', 'r', 'r', 'a',
'y', 'T', 'e', 's',
't'
};
char textArray[11] = {"Array Test"};
int textArray2[] = { 1. 3, 5, 7, 9, 11, 13, 15 }; |
ex2)
#include<stdio.h> void main(void){
char textTest[4]
= {'T', 'e', 's', 't'};
char textTest2[]
= {"Text Array Test"};
/* 2종류의 character형 배열
선언과 초기화 */
for(int i=0; i <=
4; i++){
printf("%c",
textTest[0 + i]);
}
printf("\n");
printf("%s\n",
textTest2);
} /* 값은 Test
Text Array Test */
// 문자열 배열의 경우 2번째 textTest2 방법이 단연 편하다.
|
포인터(Pointer)
포인터 변수의 선언
데이터형 *변수명;
데이터형* 변수명; |
ex)
int *num;
char *pointer;
|
포인터 변수의 사용 |
ex)
#include<stdio.h>
main(){
int numvar; /*
integer형 일반변수 선언 */
int *ptest; /*
integer형 포인터 선언 */
numvar = 7; /*
numvar 변수에 7이라는 값을 대입 */
ptest = &numvar;
/* ptest 포인터에 numvar
변수의 주소 대입 */
*ptest += 3; /*
ptest 포인터에 대입된 주소의 값 더하기 3 */
printf("%d\n",
numvar); /* numvar의 값 */
printf("%d\n",
*ptest); /*
ptest 포인터에 대입된 주소의 값 */
printf("%d\n",
ptest); /*
ptest 포인터에 대입된 주소 */
} /* 값은 10, 10, numvar의 메모리
주소값이 나온다. */ |
구분 |
일반변수 a |
포인터변수 *p |
주소 참조 |
&a |
p |
값 참조 |
a |
*p |
|
배열과 포인터.
배열의 주소를 포인터에 대입하는 방법.
array[10]이라는 배열의 주소를 *pointer란 포인터에 넣을 경우.
1. pointer = &array[0];
2. pointer = array;
|
ex)
#include<stdio.h>
main(){
int num[5] = {1, 2,
3, 4, 5}; /* integer형 배열 선언 */
int *nump;
/* integer형 포인터 선언 */
nump = num; /* 배열의 첫번째 요소의
주소를 포인터에 대입 */
for(int i=0; i <
5; i++){
printf("%d
", *(nump + i));
/* 포인터에
대입된 num배열의 값을 num[0]부터 차례로 표시. */
}
printf("\n");
} /* 값은 1 2 3 4 5 */
|
-2007.11.16
-2007.11.23 배열 파트 약간 수정.
|