20140327 - 포인터,포인터와 배열,상수형태 문자열 포인터,문자열배열입력,포인터배열,포인터와 함수,call-by-value,call-by-reference
c언어 2014. 3. 27. 17:49포인터와 배열
배열의 이름은 상수 형태의 포인터. 그래서 배열의 이름을 가리켜 포인터 상수라 부르기도 한다.
배열의 이름도 포인터이기 때문에 배열의 이름을 피연산자로 하는 *연산이 가능.
1차원 배열이름의 포인터 형은 배열의 이름이 가리키는 대상을 기준으로 결정.
(예제1)
|
|
int * |
p |
int [ ] |
arr |
int *p;
int arr[3];
p[]
*arr
&arr[1]==*(arr+1)
(예제2)
상수형태 문자열을 가리키는 포인터.
변수 형태 문자열
char str1[] = "My String"; //스택영역에 저장
상수 형태의 문자열
char * str2 = "Your String"; //코드영역에 저장
(예제1)
(예제2)
문자열 배열 입력
(예제1)
포인터 변수로 이뤄진 배열 : 포인터 배열
(예제1)
(예제2)
(예제3)(char*strArr[3]={0x1004,0x1048,0x2012})
포인터와 함수에 대한 이해
함수의 인자로 배열 전달. 배열은 함수인자로 넘길 수 없다. 매개변수로 배열을 선언할 수 없기때문에 배열을 통째로 넘겨받으려면 매개변수로 배열을 선언할 수 있어야 한다.
고로 포인터를 써서 넘겨야 한다.
배열을 함수의 인자로 전달받는 함수의 또 다른 선언
(예제1)
call-by-value : 값을 전달하는 형태의 함수호출
call-by-reference : 주소 값을 전달하는 형태의 함수호출
'c언어' 카테고리의 다른 글
20140401 - 함수포인터 (0) | 2014.04.01 |
---|---|
20140328 - 포인터대상의 const선언,도전프로그래밍2,다차원배열의 이해와 활용 (0) | 2014.03.28 |
20140325 - 배열, 문자열배열, 포인터와 배열 (0) | 2014.03.25 |
20140324 - 전역변수,static지역변수,재귀함수,배열 (0) | 2014.03.24 |
20140321 - 함수와 지역변수 (0) | 2014.03.22 |