c语言的指针部分 *p与p区别

如题所述

c语言的指针部分 *p与p区别如下:

1、作用不同

*p表示此指针指向的内存地址中存放的内容。

p是一个指针变量的名字,表示此指针变量指向的内存地址。

2、输出内容的格式不同

*p常用在一个和指针类型一致的变量或者常量

p输出一个指针的地址,通常是输出一个16进制的数。

3、效果不同

*p是让编译器从指定的地址中读取出数据。

p是用来存放要读取数据的地址。

扩展资料

C语言中使用指针的作用:

1、指针使程序的不同部分能够共享数据  

类似于共享内存,如果将某一个数据值的地址从一个函数传递到另外一个函数,这两个函数就能使用同一数据。

2、利用指针,能在程序执行过程中预留新的内存空间  

大多数情况下,可以看到程序使用的内存是通过显式声明分配给变量的内存。但是在很多应用场合中,可能程序运行时不清楚到底需要多少内存,使用指针可以让程序在运行时获得新的内存空间,并让指针指向这一内存更为方便。

3、指针可以用来记录数据项之间的关系    

在高级程序设计应用中,指针被广泛应用于构造单个数据值之间的联系。比如,程序员通常在第一个数据的内部表示中包含指向下一个数据项的指针(实际上就是链表了),来说明这两个数据项之间有概念上的顺序关系。

参考资料来源:百度百科——指针

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-10
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的值。
祝学业进步!本回答被提问者采纳
第2个回答  2013-02-15
呃⋯⋯第二个前面无运算符相当于p,有运算符且p是函数名或函数指针时,加括号相当于p,不是则无意义,p是函数名且返回指针且是调用时,不加括号是返回的指针的间接引用,第一个p不是指针的话无意义,如果是指针(什么指针都行,包括函数指针等不常用的,但不能是野指针,运行时会报错),如果这个表达式前面是运算符号,相当于p,如果前面是另一个表达式,是*p与那个表达式位与,p是函数指针时加括号相当于p,p是函数指针或函数的二级指针且该函数返回引用时是返回的引用的内存地址。(呼!累死我了,给个满意啊!看不懂的话等我有时间弄个表格)
第3个回答  2011-12-11
赋值的时候*p表示这是一个指针,p表示是一个数
而用的时候如果p是一个指针,那么*p表示所指向的内容,p本身存着一个地址。
第4个回答  2011-12-11
p中放的是地址
int a=321;
int *p=a;
其实a是一个地址的别名,这样方便人们识别;
p也是一个地址,并且存储空间中的这个地址中放的是变量a即321这个数在存储器中的地址,而“*”的作用就是将p这个地址中存放的数所代表的地址中所存放的数据。
相似回答