c语言中 !p 是什么意思

Python027

c语言中 !p 是什么意思,第1张

意思:使当前指针指向链表的下一个结点。

一般作用在数据结构中的单链表里由应用,语句中的p一般指向一个结构体类型的数据,此类型的数据通常表示节点;结构体里存放的一些数据和记录下一个节点地址的指针变量next;这个next就好比链条一样,连接着一个个节点。

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么要用指针取出结构体中的数据,就要用到“->”.

扩展资料:

举个例子:

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*/

}

%p在 C 语言中用来是打印变量地址的。它是一个格式控制符,p即pointer(指针)的缩写。指针的值是一个表示地址空间中某个存储器单元的整数。%p输出的结果一般是一个十六进制的整数,代表指针的值,附加前缀0x。

扩展资料:

C语言是面向过程的、抽象化的程序开发设计语言,多用于底层开发。C语言可以用简易的方式来编译、处理低级存储器。C语言可以用少量的机器语言并且不需要任何运行环境支持就可以高效率的运行。

C语言具有很强的跨平台特性,可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。它诞生于美国的贝尔实验室,由B语言发展而来,目前 C语言还在不断的完善。

参考资料:

百度百科-C语言