C语言 *p 和p的区别?

一、表示的东西不同*p表示p代表相应数据类型在存储单元中存储的首地址,而这个存储单元存储的是相应类型数据的数值.**p表示p也表示地址,简单的说,这个地址对应的存储单元存储的数也是一个地址,而不是数值,而这个被存储的地址对应的存储单元存储的数据才是真正的相应类型的数值.

*p++//它相当于*(p++),首先指针p后移,由于对指针是后缀加,所以p++返回p没后移时的指针,如果是数组,那么表达式的值为指针当前所指元素(指针没有后移时)的值*++p//相当于*(++p),指针p先后移,如果是数组,则指向下一个元素,然后++p返回指针下移后的指针.然后*取下移指针后所指向的值

如果p是用typedef定义的一个类型的话,那么p*就是这种类型的指针变量类型,不然就是错误的用法把!*p如果出现在声明语句中,说明p是一个指针,如果前面已经声明过p那么*p就是对指针p的解引用,*p代表p指向的那个变量

假设我们定义一个指针p.那么会经常使用到三个符号:1,p;2,*p;3,&p; 初学者经常会感到很迷茫,到底这三个符号表示什么?我们知道,p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制

*p是指针变量,p是普通变量.

p是指针变量,其值是一个变量的地址.p收到了哪个变量的地址,就指向哪个变量.该变量成为p的对象.*p是p所指向的对象的值.例如:int i=3,*p; p=&i; 注意:p收到i的地址,故p指向i,i是p的对象.printf("%d,%d\n",i,*p); 输出:3,3 注意:*p是p所指向的对象的值,即i的值.C语言 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.

举例:int a = 3; ///a是一个整型变量,值为3 int *p = &a;// p是一个指针,指向a的地址 说p,就是指针,*p 是指针指向的内容,即a地址中的内容 实际上*p 和a 这个应该是一个意思了

*p()和*(p)()是一样的 你要问的是*p()和(*p)()吧int *p()表示的是返回类型是整型指针int (*p)()表示的是int ()类型的函数指针

*p表示指针p所指单元的内容p表示指针p所指单元的地址

赋值的时候*p表示这是一个指针,p表示是一个数 而用的时候如果p是一个指针,那么*p表示所指向的内容,p本身存着一个地址.

相关文档

c语言指针 p与 p
p与p的区别是啥
&p是指针变量p 的
c语言指针的理解
如果p是指针变量
彻底搞定c语言指针
指针变量赋值 p和p
区分p和q顺口溜
彻底搞定c语言指针
c语言中 p是什么意思
区分p和q顺口溜
p表示的是指针变量p的地址
c语言直接打印指针
c指针详解经典非常详细
c语言指针 p是个数吗
指针变量 p和p的区别
指针变量 p代表什么
c语言中指针的优缺点
电脑版