다중포인터란?  포인터 변수의 주소를 담고 있는 포인터
 *(참조연산자)만큼 참조 연산이 일어나면서 접근함

 int **pp    : 이중포인터
 int ***ppp : 삼중포인터


#include<stdio.h>
void main()
{
   char arr[4][10] = {"Dog","Cat","Monkey",Mouse"};
   char (*p)[10];
   int i=0;
   p=arr;

   for(i=0;  i<4;  i++)
   {
      printf("배열 포인터 p+ %d = %s 주소: %d \n",i,p+i,p+i);
    }
   printf("\n");

   for(i=0;  i<4;  i++)
   {
       printf("이차원배열 arr + %d \ %s 주소: %d \n",i,arr+i,arr+i);
    }

 }



'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

Call by Address  (0) 2011.08.17
Call By Value  (0) 2011.08.17
다차원 배열(이차원배열)  (0) 2011.08.16
배열 and 포인터  (0) 2011.08.16
포인터  (0) 2011.08.16
포인터란?   주소 그자체
 ①포인터는 메모리의 번지 주소.
 ②포인터 변수  메모리의 주소를 가지는 변수.
 ③포인터 변수의 크기는 4Byte 의 부호없는 정수형

◎포인터연산자
 ① &(주소연산자)는 변수의 메모리 주소를 표현해주는 연산자.
 ② *(참조자)      는 주소를 이용하여 변수값을 접근하는 연산자.
#include <stdio.h>
void main()
{
   int number =100;
   int *p;
   p= &number; 
   printf("p =%d \n",p);
   printf("*p = %d \n",*p);
}


《p= &number》
→p는 포인터 변수로 number의 주소값을 가지고 있다.
   p라는 포인터 변수가 가지는 값을 주소로 보고, 그값(number의 주소)을 참조해서 해당주소의
   실제값을 출력.







printf에서 *p라는 참조연산자를 실행한값은 p라는 퐁인터변수가 가지는 값을 주소로 보고 그값(주소)을
참조하여 한번더 들어간다는 뜻.

즉,  number값은 100                         p값은  0000 이라는 number의 주소값
    &number값은  0000(주소)            &p값은  0004 라는 포인터 변수의 p값
                                                    *p값은  0000 이라는 p값의 데이터를 참조해서 찾아간 number의 값


 

#include <stdio.h>
void main()
{
   char *p = "string";
   while (*p)
   {
      printf("%c,%d \n",*p,p);
      p++;
    }
}


p[]로 사용하던것을 *p로 선언!
while문에서 *p의 마지막인 Null값을 만나면 종료.
포인트 변수에 +1



*scanf로 받을시

#include<stdio.h>                                       #include<stdio.h>
void main()                                                void main()
{                                  (수정code)            {
   char *p;                             →                      char *p,arr[10];
   scanf("%s",p);                                             scanf("%s",arr);
   printf("%s",p);                                               p=arr;
}                                                                   printf("%s",p);
                                                                 }

                                                               《p=arr;》→배열의 이름(첫번째주소값)을 p에대입.   

    

 

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

다차원 배열(이차원배열)  (0) 2011.08.16
배열 and 포인터  (0) 2011.08.16
변수의 공간할당  (0) 2011.08.16
배열(문자)  (0) 2011.08.16
배열(숫자)  (0) 2011.08.16