初学指针

 2 # include <stdio.h>//没有意义的可以编译程序
 3 
 4 int main(void)
 5 {
 6     int *p;//p是变量的名字,int * 表示p变量存放的事int类型变量的地址,例如p=i错的,p=&i;是正确的
 7            //int * p 不表示定义了一个名字叫做*P的变量
 8            //int * p   p是变量名,p变量的数据类型是int *
 9            //           所谓int *类型实际就是存放了int变量地址的类型
10     int i = 3;
11     p =  &i;   //ok
12     //p = i;  //error
13     //p = 55;//error
14 
15     return 0;
16 }
17 ===========================================================================================
18 */
19 # include <stdio.h>//没有意义的可以编译程序
20 
21 int main(void)
22 {
23     int * p;
24     
25     int i = 3;
26     int j;
27     p =  &i;   
28                     /*
29                     1.p保存了i的地址,一次p指向i;
30                     2.p不是i,i也不是p,更准确地说,修改p的值不影响i的值。修改i的值不影响p的值。
31                     3.如果一个指针变量指向了某个普通变量,则
32                                   *指针变量  就完全等价于   普通变量
33                            例子:
34                            如果p是个指针变量,并且p存放了普通变量的地址i的地址
35                            则p指向了普通变量;
36                            *P 就完全等同于 i;
37                            或者说:  在所有出现*P的地方都可以换成i;
38                                       在所有出现*i的地方都可以换成p;
39                                       
40                           *p 就是以p的内容为地址的变量
41                         
42==========================================================================
43                     
44       j = *p;  //等价于 j = i;
45 
46       printf("j = %d,i = %d, *p = %d\n",j,i,*p);
47     
48     return 0;
49 }

posted on 2012-09-03 08:17  Your Song  阅读(133)  评论(0编辑  收藏  举报

导航