设p为指针则*p是什么
时间: 2024-03-06 14:51:36 浏览: 11
在C语言中,指针(Pointer)是一个存储变量地址的变量。可以使用指针来访问或修改指针指向的变量的值。如果p是指向某个变量的指针,则*p表示该指针所指向的变量的值。
例如,假设有一个指针p指向一个整型变量a,则可以使用*p来访问并修改a的值。具体操作如下:
```c
int a = 10;
int *p = &a;
// 输出a的值
printf("%d\n", a);
// 输出p所指向的变量的值
printf("%d\n", *p);
// 修改p所指向的变量的值
*p = 20;
// 输出a的新值
printf("%d\n", a);
```
在上面的示例中,输出的第一个值为10,表示变量a的值。第二个值也为10,表示指针p所指向的变量的值。通过修改*p的值,也就是执行*p = 20;语句,a的值被修改为20。因此,第三个输出的值为20。
相关问题
设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL;是否正确
是的,语句p=0;在某些编译器中可能是合法的,但是根据 C 语言标准,应该使用 p=NULL; 来将指针变量赋值为空指针。在 C 语言中,NULL 是一个预定义的宏,用于表示空指针常量,其值为 0 或 (void *)0。使用 NULL 比直接使用 0 更加清晰明了,能够更好地表达程序的意图。同时,使用 NULL 也能够避免一些潜在的编译器问题和代码风格问题。因此,在 C 语言中,应该尽量使用 NULL 来表示空指针常量。
设单链表中结点的结构为(data, link)。已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行的操作是( )。
在*p的后继位置插入s结点,即将p的link指向s,将s的link指向原来p的后继结点。具体操作如下:
```
s.link = p.link
p.link = s
```