指针的指针

回顾了大半天儿的指针,这段程序可以很清楚的表达指针以及指针的指针了

 1 int main(void)
2 {
3 int i = 100;
4 int *pi = &i;
5 int **ppi = π
6
7 printf("i: %d |&i %p |pi: %p |&pi %p |*pi:%d |&*pi: %p \n",i,&i,pi,&pi,*pi,&*pi);
8 printf("ppi %p | *ppi %p | **ppi %d \n",ppi,*ppi,**ppi);
9
10 return 0;
11 }

gcc -std=c99 test.c -o test

./test

编译执行后:

i: 100 |&i 0x7ffff1a38dac |pi: 0x7ffff1a38dac |&pi 0x7ffff1a38d98 |*pi:100 |&*pi: 0x7ffff1a38dac
ppi 0x7ffff1a38d98 | *ppi 0x7ffff1a38dac | **ppi 100

 

思考:pi 与 &*pi 打印出的内容相同,但是其中的味道却大有不同 :-) 为什么呢?

 

posted on 2011-11-23 15:44  I'm legend  阅读(384)  评论(0编辑  收藏  举报