C/C++指針初識

 int main()ide

{spa

printf("\n****************************************************************************"); 3d

//指針指向x1的內存地址,相應x1值變更,p也相應指針

int x1,*p=&x1;blog

x1=10;內存

printf("\nx1=%d",x1); it

printf("\np=%d",*p);class

 

printf("\n****************************************************************************"); 變量

 

//改變指針指向的地址im

int x=1,y=2,*p1=&x,*p2=&y;

printf("\nx=%d,y=%d,p1=%d,p2=%d",x,y,*p1,*p2);

p1=p2;

x=3,y=40;

printf("\nx=%d,y=%d,p1=%d,p2=%d",x,y,*p1,*p2);

 

printf("\n****************************************************************************"); 

 

//改變指針p3的值,相應指向x2的值也會跟着改變

int x2=3,y2=4,*p3=&x2;

printf("\nx2=%d,y2=%d,p3=%d",x2,y2,*p3);

*p3=y2+4;

x2=6;

p3=&y2;

printf("\nx2=%d,y2=%d,p3=%d",x2,y2,*p3);

 

printf("\n****************************************************************************"); 

 

//指向常量的指針(不能賦值*p4=30,可是能改變指針指向的地址)

const int *p4=&x2;

printf("\np4=%d",*p4);

p4=&y2;

printf("\np4=%d",*p4);

 

printf("\n****************************************************************************"); 

 

//常指針(固定指向某一變量地址不能改變(p=&y不成立),但它指向的地址的值能夠改變*p=20)

int *const p5=&x2;

printf("\np5=%d",*p5);

*p5=20;

printf("\np5=%d",*p5);

 

printf("\n****************************************************************************"); 

 

//指向常量的常指針(指針自己不能改變,指向的地址中的值也不能改變。*p=20和p=&y都不成立)

const int *const p6=&x2;

printf("\np5=%d",*p5);

 

 

printf("\n****************************************************************************"); 

 

 

return 0;

}

 

相關文章
相關標籤/搜索