两者之间的区别如下:
1、表示的意义不同。
p是一个指针变量的名字,表示此指针变量指向的内存地址,而*p表示此指针指向的内存地址中存放的内容。
2、数量形式不同。
p如果使用%p来输出的话,它将是一个16进制数。*p一般是一个和指针类型一致的变量或者常量。
3、定义不同。
p存放的是地址,而*p是让程序去那个地址取出数据。
例子:
#include <stdio.h>
void main()
{
int x=3
int *p,*q
p=&x,q=&x
printf("%d\n",*p++)
printf("%d\n",(*q)++)
printf("%d\n",x)
}
输出结果为:3,3,4
解释:
*p++:是先取出*p的值,再使p加1
//p是个指针,给p加1,相当于让p指向了x所在地址的下一个位置,而对于x则是没有任何影响
(*p)++:是使*p的值加1.
//*p则是p指向的位置对应的值,题目中是*q,所以此时的*q就是x的值,为3,当输出*q之后,再给*q即x自加1,综上所述,x就会变为4
参考资料:
百度百科-p (C语言)
百度百科-C语言
看函数的头文件。判断代码是c语言还是p可以看函数的头文件,也就是代码前的include命令,代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系,代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。#include <stdio.h>void main()
{
int *p//P是一个整型指针
printf("%d\n",p)//以10进制整数的形式输出指针P的值
printf("%d\n",&p)//以10进制整数的形式输出指针P的地址
}
P是指针
&P是指针P的地址
*P是指针P的内容,也就是P所指向的那个地址
注意,内存中的地址都是16进制的,可以转化为10进制,不过不是很推荐这么做。