关于声明结构体内部指向结构体类型指针变量的问题。
#include<stdio.h>structjgt//声明结构体{intn;structjgt*x;//指向结构体类型的指针变量};intmain(void){stru...
# include <stdio.h>
struct jgt//声明结构体
{
int n;
struct jgt * x;//指向结构体类型的指针变量
};
int main (void)
{
struct jgt * head;//结构体指针变量
head->x= head;
//head->x= 78;//这里为什么可以直接给指针赋值的?
printf ("%p\n%d\n"head->x,head->x);//输出head->x的地址和值
return 0;
}
为什么head->x可以直接给指针赋值?指针变量不是只可以存地址的吗?
焦躁中...50分送上~ 展开
struct jgt//声明结构体
{
int n;
struct jgt * x;//指向结构体类型的指针变量
};
int main (void)
{
struct jgt * head;//结构体指针变量
head->x= head;
//head->x= 78;//这里为什么可以直接给指针赋值的?
printf ("%p\n%d\n"head->x,head->x);//输出head->x的地址和值
return 0;
}
为什么head->x可以直接给指针赋值?指针变量不是只可以存地址的吗?
焦躁中...50分送上~ 展开
1个回答
展开全部
struct grade *student;\\/\\/是声明一个指向grade数据类型的指针。指针的名字叫student.\r\nstruct grade student;\\/\\/声明一个结构体的变量,变量名叫student。\r\nstruct grade student[N];\\/\\/声明一个大小为N的结构数组。\r\n怎么会多了个" * " , 这*号是属于struct grade的,还是属于student的?\r\n这个*是属于(struct grade)的,*说明student是一个指向这个结构的指针。就像int *p;p是一个指向int类型的指针道理一样,不知道这样解释我的意思讲明白了没?
追问
我知道的,可是int *p,p不能直接给它赋值的吧,例如p=3,这样会报错的吧,可我的那个程序结构体里的那个x指针变量,在函数里访问x时确可以直接赋常量值,也可以赋地址值,这是为什么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询