c语言中p什么
Ⅰ c语言,int *p=G 中的p是指什么
c语言中
int *p=G;
这句话的作用是:
①声明一个指向整型数据的指针变量p(简称“指针p”);
②并把变量G的地址赋值给p(这个赋值的过程在更多的时候被称为“让指针p指向整型变量G”。
回答你的问题:
(1)p是一个特殊的变量;
(2)p中只能存放地址(又叫指针);
(3)p中只能存放整型变量的地址(也叫整型指针);
(4)所以,p是一个整型指针变量(或整型变量指针);
(5)p的值是变量G的地址,即p==G;
(6)我们可以用下面的运算得到与p相关的其他量值:
&p--得到变量p的地址;
p--得到变量G的地址;
*p--得到变量G的值,*p==G。
Ⅱ c语言中 !p 是什么意思
意思:使当前指针指向链表的下一个结点。
一般作用在数据结构中的单链表里由应用,语句中的p一般指向一个结构体类型的数据,此类型的数据通常表示节点;结构体里存放的一些数据和记录下一个节点地址的指针变量next;这个next就好比链条一样,连接着一个个节点。
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么要用指针取出结构体中的数据,就要用到“->”.
(2)c语言中p什么扩展阅读:
举个例子:
struct Data
{
int a,b,c;
}; /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
/*由于此时p指向A,因而 p->a == A.a,也就是1*/
对于一开始的问题p=p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data
{
int a;
struct Data * next;
};/*定义结构体*/
main()
{
struct Data * p;/*声明指针变量p*/
p = p->next;/*将next中的值赋给p*/
}
Ⅲ C语言中*p和**p有何区别
一、表示的东西不同
*p表示p代表相应数据类型在存储单元中存储的首地址,而这个存储单元存储的是相应类型数据的数值。
**p表示p也表示地址,简单的说,这个地址对应的存储单元存储的数也是一个地址,而不是数值,而这个被存储的地址对应的存储单元存储的数据才是真正的相应类型的数值。
二、基类型不同
例如int *p1,**p2;
两者本质上都是指针,但是两者的基类型不同。p1的基类型是int,换句话说p1指针指向的是int型的数据,而p2的基类型是int *换句话说p2指向的是指向int型数据的指针,即指向指针的指针。
三、用法不同
例如int *p;
那么p就是指向int类型变量的一个指针。(即数组)
如果int**p;
那么p就是指向int*类型指针的一个指针。(即指向一维数组的指针,即二维数组)
Ⅳ c语言中,p.和p->有什么区别
p. p是类的对象,点后面要跟类中的元素,这样就完成了类里面元素的调用,元素可以是变量也可以是函数。
p->是传地址,比如说有另一个变量a,你p->a就把p的地址也给a了