#include <stdio.h> /* 2018-05-26 地址是内存单元的编号 指针就是地址,地址就是指针 地址就是内存单元的编号 指针变量是存放地址的变量 指针(0019FF38)和指针变量(p)是两个不同的概念 但是要注意:通常我们叙述时会把指针变量简述为指针,实际含义并不一样 */ int main(void) { int * p; // p是变量的名字,int *表示p变量存放的int类型变量的地址 // int *p 不表示定义了一个名字叫做*p的变量 // int *p 应该这样理解:p是变量名,p变量的数据类型是int *类型 // 所谓int *类型实际就是存放int变量地址的类型 int i = 3; int j; p = &i; //ok /* 1,p保存了i的地址,因此p指向i 2,p不是i,i也不是p,更准确的说,修改p的值不会影响i的值,修改i的值也不会影响p的值 3,如果一个指针变量指向了某个普通变量,则 *指针变量 就完全等同于 普通变量 例子: 如果p是个指针变量,并且p存放了普通变量i的地址 则p指向了普通变量i *p 就完全等同于i 或者说:在所有出现*p的地方都可以替换成i 在所有出现i的地方都可以替换成*p printf("%d\n",i); //输出3 printf("%d\n",*p); //输出3 *p 就是以p的内容为地址的变量 */ j = *p; printf("i = %d ,j = %d ,*p = %d \n",i,j,*p); //结果i = 3 ,j = 3 ,*p = 3 printf("i的地址是:%p\n",&i); //c语言中%p用来输出指针类型自身的值。也就是说%p用来输出地址 printf("j的地址是:%p\n",&j); printf("p的地址是:%p\n",&p); printf("p的值是:%p\n",p); /* 输出结果: i = 3 ,j = 3 ,*p = 3 i的地址是:0019FF38 j的地址是:0019FF34 p的地址是:0019FF3C p的值是:0019FF38 */ return 0; } //变量i的地址是0019FF38,i的值是3 //变量p的地址是0019FF3C,p的值是0019FF38,即p的值就是i的地址 //*p 就是以p的内容为地址(即i的地址0019FF38)的变量,所以*p的值是3 //注意,你在运行的时候地址肯定不是这样的,但是i的地址和p的值一定是一样的
c语言指针1
原创
©著作权归作者所有:来自51CTO博客作者Ambb1的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:c语言指针2

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C语言指针的基本认识
C语言指针的基本认识
指针变量 指针类型 指针数组 -
C语言复习1之指针
1.变量的属性c语言中变量的地址和值的概念,比如: int x=1; printf("x value:%d\n",x); printf("x address:%d\n",&x);输出:x value:
C语言复习1之指针 变量 指针的指针 指针变量 指针地址 -
C语言简明教程--指针1
C语言教程,指针部分.
指针 C 语言