'다중포인터'에 해당되는 글 2건

  1. 2009.03.24 다중포인터II, 포인터배열, 배열포인터
  2. 2009.03.24 다중 포인터
C/C++2009. 3. 24. 20:51

/*
#include <stdio.h>   //문자열 중에 일치되는 첫문자 찾기

int main(){

char Select;
char Sel[]= "None but The Brave deserves the Fair";
char *tmp;


printf("문자열 : %s\n",Sel);
printf("찾을 문자 입력 : ");
scanf("%c",&Select);
for(tmp=Sel;*tmp!=NULL;tmp++){
if(*tmp==Select)break;
}
printf("일치되는 첫번째 문자열은 %d입니다 \n",tmp-Sel+1);
}
*/

/*
#include <stdio.h>
int main(){

char *name1[4] = { "apple","Orange","Banana","Grape"};
char name2[4][10] = { "apple","Orange","Banana","Grape"};
int i;

for(i=0;i<4;i++){  //2차원 배열
printf("name2[%d] = %8s (%d) \n",i,name2[i],name2[i]);//12로 시작 스텍영역
}
printf("============================\n");

for(i=0;i<4;i++){  //포인터 배열
printf("name1[%d] = %8s (%d) \n",i,name1[i],name1[i]);//4로 시작 데이터영역
}
return 0;
}
*/

/*
#include <stdio.h>

int main(){

int A[5] = {10,20,30,40,50};
int *p = A;
int i;
int AA[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int (**pp)[4];  //**pp 두번으로 커널영역 접근하여 에러발생

for(i=0;i<5;i++){
printf("%d\n",p[i]);
}

pp = AA;

printf("pp = %d \n",pp);
printf("AA = %d \n",AA);

printf("*pp = %d \n",*pp);
printf("*AA = %d \n",*AA);

printf("**pp = %d \n",**pp);
printf("**AA = %d \n",**AA);

printf("AA[1][2] = %d \n",AA[0][1]);
printf("pp[1][2] = %d \n",pp[0][1]);
return 0;

}
*/


/*
#include <stdio.h>
int main(){

 char c;
 printf("getchr : ");
 c = getchar ();
 printf("입력한 값 : %c\n",c);
 //fflush(stdin);
 printf("fgetc : ");
 c = fgetc(stdin);
 printf("입력한 값 : %c\n",c);
 return 0;
}
*/

 

Posted by 샤키
C/C++2009. 3. 24. 20:47

/*
#include <stdio.h>   //2차원 배열

int main(void){

 int A[3][4] = {
  {1,2,3,4},
  {5,6,7,8},
  {9,10,11,12}

 };
 int i,j;

 printf("A[0][0] = %d \n",A[0][0]);
 printf("A[0][0] = %d \n",A[1][3]);

 printf("A = %d \n",A);
 printf("A[0] = %d \n",A[0]);
 printf("&A[0][0] = %d \n",&A[0][0]);
 printf("A[1] = %d \n",A[1]);
 printf("&A[1][0] = %d \n",&A[1][0]);

 for(i=0;i<3;i++){
  for(j=0;j<4;j++){
   printf("%3d ",A[i][j]);
  }
  printf("\n");

 }

 return 0;
}
*/

/*

#include <stdio.h>   //2차원배열을 이용 학생성적

int main(void){

 int A[3][4];
 int i,j;

 printf("<<학생 성적 입력>>\n");

 for(i=0;i<3;i++){
  printf("<< %d번째 학생>>\n",i+1); 
  printf(" 국어 : ");
  scanf("%d",&(A[i][0]));  //표를 생각해보면 됨
  printf(" 영어 : ");
  scanf("%d",&(A[i][1]));
  printf(" 수학 : ");
  scanf("%d",&(A[i][2]));
  A[i][3]=A[i][0]+A[i][1]+A[i][2];  //for이 세번 돌면서 합까지 열3번째 계산
 }
  
 
  printf("%s %5s %5s %5s %5s\n","Num","국어","영어","수학","합계");
  
  for(i=0;i<3;i++){
   printf("[%d]",i+1);
   for(j=0;j<4;j++){
    printf("%5d", A[i][j]);
   }
   printf("\n");
  }
  return 0;
}
*/

#include <stdio.h>

int main(){

 int x = 10;

 int * p;    //일중 포인터
 int ** pp;   //이중 포인터
 int *** ppp;   //삼중 포인터
 int y = 200;

 p = &x;

 *p = 100;

 printf("x = %d \n",x);   //x의값
 printf("&x = %d \n",&x); //x의 주소

 pp = &p;

 printf("pp = %d \n",pp);  //p의 주소
 printf("*pp = %d \n",*pp);  //2번따라가서 x의 주소
 printf("**pp = %d \n",**pp); //x의 값

 ppp = &p;
 printf("ppp = %d \n",ppp);
 printf("*ppp = %d \n",*ppp);
 printf("**ppp = %d \n",**ppp);
 //printf("***ppp = %d \n",***ppp);

 x = &y;

 printf("***ppp = %d \n",***ppp);

 return 0;
}

슬슬 한계다...

Posted by 샤키