企业网站首页效果图,大连网站建设公司排名,网站建设员工技能要求,网站开发标准合同前言
在C语言中#xff0c;指针是非常重要的概念。指针是一个变量#xff0c;其值为另一个变量的地址。使用指针可以直接访问内存中的数据#xff0c;这使得C语言非常灵活和强大。在学习C语言时相比大家都已经知道了和*的区别了#xff0c;但是你知道*p和*…前言
在C语言中指针是非常重要的概念。指针是一个变量其值为另一个变量的地址。使用指针可以直接访问内存中的数据这使得C语言非常灵活和强大。在学习C语言时相比大家都已经知道了和*的区别了但是你知道*p和*p又代表什么吗
写个测试程序
下面是一个简单的C语言代码可以用来演示上面提到的几个标识符让我们更好的理解几个标识符的意义
#include stdio.hint main() {int a 10;int *p a;int **pp p;printf(a%d\n, a); // 打印a的值printf(a%p\n, a); // 打印a的地址printf(p%p\n, p); // 打印p的值即a的地址printf(*p%d\n, *p); // 打印p所指向的变量的值即a的值printf(p%p\n, p); // 打印p的地址printf(*pp%p\n, *pp); // 打印pp所指向的指针变量p的值即a的地址printf(**pp%d\n, **pp); // 打印pp所指向的指针变量p所指向的变量的值即a的值printf(pp%p\n, pp); // 打印pp的地址printf(*p%p\n, *p); // 打印p的值即a的地址printf(*p%p\n, *p); // 打印p的地址return 0;
}下面我们来运行一下这个程序看一下输出结果
a10
a0x7fff87a4ce94
p0x7fff87a4ce94
*p10
p0x7fff87a4ce98
*pp0x7fff87a4ce94
**pp10
pp0x7fff87a4cea0
*p0x7fff87a4ce94
*p0x7fff87a4ce94这个程序定义了一个整型变量a一个指向整型变量的指针p一个指向指针变量p的指针pp。程序输出了上面提到的几个标识符所代表的值或地址。运行这个程序可以看到它的输出结果从而更好地理解这些标识符的含义。
从上面的运行结果可以看出*p打印的是a的值也就是p指向变量的值这点是毋庸置疑的想必大家也都知道那我们一起来看看其他的变量分别代表什么意思吧 p指针变量名。在定义指针变量时需要指定指针所指向变量的数据类型。例如int *p; 定义了一个指向int类型变量的指针变量p。 *p解引用操作符。它用于访问指针所指向的变量的值。例如*p 10; 将10赋值给p所指向的变量。 p取地址操作符。它用于获取指针变量p的地址。例如int *p; int **pp p; 定义了一个指向指针变量p的指针变量pp。 *p这个操作符等价于p。它首先将p取地址然后再将其解引用得到p本身的值。 *p这个操作符等价于p。它首先将p解引用得到p所指向的变量的值然后再将其取地址得到p本身的地址。
小结
a 和 *p 输出的都是变量 a 的值。a 和 p 输出的都是 a 的地址。*p 和 *p 其实都是 p也就是 a 的地址。