C语言中#p和##p有何区别
发布时间:2025-05-13 05:40:32 发布人:远客网络
一、C语言中*p和**p有何区别
1、*p表示p代表相应数据类型在存储单元中存储的首地址,而这个存储单元存储的是相应类型数据的数值。
2、**p表示p也表示地址,简单的说,这个地址对应的存储单元存储的数也是一个地址,而不是数值,而这个被存储的地址对应的存储单元存储的数据才是真正的相应类型的数值。
3、两者本质上都是指针,但是两者的基类型不同。p1的基类型是int,换句话说p1指针指向的是int型的数据,而p2的基类型是int*换句话说p2指向的是指向int型数据的指针,即指向指针的指针。
4、那么p就是指向int类型变量的一个指针。(即数组)
5、那么p就是指向int*类型指针的一个指针。(即指向一维数组的指针,即二维数组)
二、c语言中p*是什么意思,他和*p的区别是什么
1、如是出现在算术表达式中,这个星号就是乘号,表示相乘,如果是出现在声明中(如变量定义),那就表明p是一种数据类型,p*表示要声明这种类型的指针变量。
2、依然可以表示相乘的运算,也可表示提取p指针指向的位置保存的值。例如:
3、这个printf()调用中的*p表示提取p指针指向的地址(即变量a的地址)保存的值(即变量a的值)
三、C语言指针**p是什么意思
1、**p表示p也表示地址,简单的说,这个地址对应的存储单元存储的数也是一个地址,而不是数值,而这个被存储的地址对应的存储单元存储的数据才是真正的相应类型的数值!
2、int*p=&i;//定义了一个指针指向这个变量
3、int**p1=&p;//定义了一个二级指针指向p指针
4、指针数组:就是一个由指针组成的数组,那个数组的各个元素都是指针,指向某个内存地址。char*p[10];//p是一个指针数组
5、数组指针:数组名本身就是一个指针,指向数组的首地址。注意这是一个常数。
6、函数指针:本身是一个指针,指向一个函数入口地址,通过该指针可调用其指向的函数,使用函数指针可实现回调函数。