P和*P一样吗?????????

来源:百度知道 编辑:UC知道 时间:2024/05/13 12:09:43
printf("%d",p);和printf("%d",*p);

输出的值一样吗?? 按说应该一样吧

*P代表的不也是输出P的值吗
那我定义了P=10,

printf("%d",p)输出的是10 那printf("%d",*p)输出的又是什么呢

有什么方法让他们输出的值一样呢

*在运算时是取内容符,是取某个地址中间的值如*p是取p指向的地址中的内容,加入定义p=&a,则*p是a的值。
而在定义的时候*是指针说明符,如定义一个指针p指向一个int型数据地址可以int * p;希望可以帮助你理解。
如果p是指针是不能用一个整形常量赋值的必须用地址如&a&b之类,如果p是定义成整形常量哪么就不可以用*P。

p是一个指针的话,你打印 *p 表示打印 p指向的那个地址 的值
而 打印 p 表示本身的地址值,他们不一样
类似的还有 :
int a;
a 和 &a 也不一样

再printf中输出的值是一样的。可意义不一样,p,输出变量p的值,*p,输出现在p变量所在地址的所存贮的值;在一些特定场合中,p是经常变地址的,比如数据结构中队列的问题,*p一直在移动,而p得值是不变得,但他再队列中顺序是变得,1,2,2,3=〉2,1,2,3;

完全不一样!!!左边一个是P的变量,另一个是P的指针变量!
如果你定义了P=10;
那么printf("%d",p)输出的是10
假设p=a,a=20;
printf("%d",*p)输出是20。p指向a地址中的值。

p是指针变量名,*p是指针变量,是不一样的。