포인터=주소를 담는 그릇
주소표현 aa[0]의 주소는 &aa[0]로 표시 // 원래 포인터 변수에는 꼭 주소값을 넣는다.
배열이름 aa 자체가 주소를 의미하므로 aa의주소는 단순히 'aa'로 표현.
배열 첨자로 표현 | 배열 이름으로 표현 | 주소 (임의의 주소) |
&aa[0] | aa+0 | 1031 |
&aa[1] | aa+1 | 1035 |
&aa[2] | aa+2 | 1039 |
포인터 변수를 선언하려면 변수형에 *를 붙임
ex) int *변수;, char *변수;
ex)
------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int a=123;
int *p;
p=&a;
printf("%d\n",p); //a의 주소값이 출력
printf("%d\n",*p);//a의 실제값 123이 출력
}
------------------------------------------------
배열과 포인터.
(예시로 이해하기!)
ex)
------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
char s[8]="reverse";
char *p; //포인터 변수 선언
p=s; //p배열에 s의 주소대입☞s는 주소값을 저장한게 아니고 주소값 그
자체이므로 s는 포인터 상수 p는 포인터변수
printf("&s[3]==>%s\n",&s[3]);//문자열과 포인터의 주소값을 출력
printf("p+3==>%s\n\n",p+3);//문자열과 포인터의 주소값을 출력
// ☞s[3]은 'e'를 저장하는 변수 &s[3]은 그변수의 주소값의미.
printf("s[3]==>%c\n",s[3]);//문자와 포인터의 실제값을 출력
printf("*(p+3)==>%c\n",*(p+3));//문자와 포인터의 실제값을 출력
}
------------------------------------------------
'프로그래밍 > C++' 카테고리의 다른 글
기초중기초(함수) (0) | 2011.01.04 |
---|---|
기초중기초(구조체 struct) (0) | 2011.01.03 |
기초중기초(배열 array) (0) | 2011.01.03 |
기초중기초(반복문 for) (0) | 2011.01.03 |
기초중기초(반복문 while) (0) | 2010.12.27 |