C语言结构体变量名究竟代表什么 5

#include<stdio.h>typedefstructstudentSTU;structstudent{char*name;char*num;structstude... #include <stdio.h>
typedef struct student STU;
struct student
{
char *name;
char *num;
struct student *next;
};

int main()
{
STU st1;
STU st2;
st1.next = &st2; //如果把这句换成st2就会报错
printf("%d\n%d\n",st2,&st2); //但是输出的st2和&st2的值是一样的,这怎么理解
return 0;
}
展开
 我来答
哭亦空笑亦空
2013-08-12 · 超过20用户采纳过TA的回答
知道答主
回答量:46
采纳率:100%
帮助的人:49.5万
展开全部
st2是STU类型,st1.next是STU*类型,你要st1.next = st2,那当然会错,因为类型不一样啊
输出结果一样,那是个随机数。我给你改下,你试试!.
现在不一样了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我只是只土拨鼠
2013-08-12 · TA获得超过941个赞
知道小有建树答主
回答量:558
采纳率:0%
帮助的人:466万
展开全部
打个比方吧,比如int,这是一个整型对吧,以上结构体student也是和int一样,说明是一种student型,只是int只有一个单位,结构体里面可以按顺序有一排的单位而已~

“st1.next = &st2; //如果把这句换成st2就会报错”因为“next”是一个指针,所以你得赋一个地址给它,&不是取地址符嘛~意思就是把st1的尾巴和st2的首地址连起来了~

“printf("%d\n%d\n",st2,&st2); //但是输出的st2和&st2的值是一样的,这怎么理解”
这个输出形式我就感觉很奇怪啦,结构体也能用%d?这不是给整型变量用的么?输出结果是什么啊?如果输出是地址的话,那肯定是一样的~(不过C语言里能直接显示地址么,单片机什么的才是呀……有点记不清了~)
追问
你运行一下试试啊,这么懒啊
追答
表示没有装这个软件……本人过了二级就没碰过C了……
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓉雪球
2013-08-12 · TA获得超过8998个赞
知道大有可为答主
回答量:2846
采纳率:79%
帮助的人:750万
追问
哎,你这些我都看过,怎么没抓住要害,st2代表什么,为什么st2和&st2的值是一样的
追答
str2就是个变量名嘛,就跟你定义了一个int x一样。
它的首地址要用&str2取出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
与五百同r
2017-07-19 · TA获得超过160个赞
知道小有建树答主
回答量:138
采纳率:100%
帮助的人:25.6万
展开全部
你的意思是typedef struct {char dm{5};…………}PRO; typedef struct {char dm{5} …………}PRO;//上边这些是定义了一个结构体,名字为PRO 你字数限制了,我回答不完
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
进刘0
2013-08-12 · 超过13用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:46.7万
展开全部
st1.next是一个地址,这里也就是 st2的地址,一样的是因为他都是系统随机的,也就是传说中的乱码,你没用给他分配内存空间。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式