|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这个运行的结果是怎样的????为什么会是这样呢???
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1050
人关注过本帖
标题:
这个运行的结果是怎样的????为什么会是这样呢???
只看楼主
加入收藏
qztr28
等 级:
新手上路
帖 子:40
专家分:0
注 册:2010-12-2
结帖率:
40%
楼主
收藏
问题点数:0 回复次数:11
这个运行的结果是怎样的????为什么会是这样呢???
以下程序的运行结果,我实在不明白.请高手给我解释一下.谢谢..
#include<stdio.h>
struct card{
int f;
int d;}
main(){
int j;
struct card s[9];
for(j=0;j<9;j++){
s[j].f=j+1;
printf(" %d",s[j]);}
printf(" %d %d",s[6],s[7]);
}
搜索更多相关主题的帖子:
结果
运行
2010-12-18 19:36
举报帖子
使用道具
赠送鲜花
zhaoya881010
来 自:芒砀古郡
等 级:
蜘蛛侠
威 望:
1
帖 子:339
专家分:1177
注 册:2010-11-21
第
2
楼
收藏
得分:0
你想要什么运行结果啊 ?
Go Go Go
2010-12-18 19:43
举报帖子
使用道具
赠送鲜花
qztr28
等 级:
新手上路
帖 子:40
专家分:0
注 册:2010-12-2
第
3
楼
收藏
得分:0
回复 2楼 zhaoya881010
我不想要什么结果.结果是怎样我也知道.....我只是想问..为什么结果会是这样...
2010-12-18 19:47
举报帖子
使用道具
赠送鲜花
zhaoya881010
来 自:芒砀古郡
等 级:
蜘蛛侠
威 望:
1
帖 子:339
专家分:1177
注 册:2010-11-21
第
4
楼
收藏
得分:0
来我跟你分析下哦:
程序由main函数开始执行,第一个for循环的时候,结构体struct card里面的成员变量j被赋值为1,你定义了一个结构体数组,你打印s[j]的时候其实是输出j的值。
Go Go Go
2010-12-18 19:54
举报帖子
使用道具
赠送鲜花
qztr28
等 级:
新手上路
帖 子:40
专家分:0
注 册:2010-12-2
第
5
楼
收藏
得分:0
回复 4楼 zhaoya881010
不明白.感觉你好像没说.....也不明白为什么你说j是结构体的成员变量...
2010-12-18 19:58
举报帖子
使用道具
赠送鲜花
qztr28
等 级:
新手上路
帖 子:40
专家分:0
注 册:2010-12-2
第
6
楼
收藏
得分:0
有人懂吗?
2010-12-18 20:14
举报帖子
使用道具
赠送鲜花
zhaoya881010
来 自:芒砀古郡
等 级:
蜘蛛侠
威 望:
1
帖 子:339
专家分:1177
注 册:2010-11-21
第
7
楼
收藏
得分:0
这个和存储有关系 和栈有关联
Go Go Go
2010-12-18 20:47
举报帖子
使用道具
赠送鲜花
qztr28
等 级:
新手上路
帖 子:40
专家分:0
注 册:2010-12-2
第
8
楼
收藏
得分:0
回复 7楼 zhaoya881010
我不知道你是不是真的懂..如果真的懂.麻烦你直接说详细一点....我只是想知道为什么结果是那样???
2010-12-18 20:52
举报帖子
使用道具
赠送鲜花
zhaoya881010
来 自:芒砀古郡
等 级:
蜘蛛侠
威 望:
1
帖 子:339
专家分:1177
注 册:2010-11-21
第
9
楼
收藏
得分:0
你的打印s[6],s[7]的时候,因为s[6]、s[7]里面有两个成员变量,又因为他们的存储是栈的方式见图
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
编译器会默认的把s[6],s[7]的两个成员都压入栈中,见图出栈的时候,由于栈的特点后进先出,一个一个往外弹,所以你格式化输出两个变量即弹栈两次就是把s[6]里的成员f和d给弹了出来输出在屏幕上就7和一个随机值,要想结果正确可以改成是s[6].f,s[7].f
Go Go Go
2010-12-18 21:24
举报帖子
使用道具
赠送鲜花
midle110
等 级:
论坛游民
帖 子:16
专家分:38
注 册:2010-12-15
第
10
楼
收藏
得分:0
等等
你要输出s[6]、s[7]的什么 啊
这样是不行的 撒
虽然我也是大一的,但是你这个明显就是不能输出什么的 嘛
还有第一个s[j]输出的是s[9]的
再说s[9]没有定义。
就不要谈什么输出了
#include<stdio.h>
struct card{
int f;
int d;}
main()
{
int j;
struct card s[9];
for(j=0;j<9;j++)
{
s[j].f=j+1;
printf(" %d",s[j].f);
}
printf("\n\n\n %d %d\n",s[6].f,s[7].f);
}
这个是我改了的
希望对你有帮助
2010-12-18 21:37
举报帖子
使用道具
赠送鲜花
12
1/2页
1
2
快速回复:
这个运行的结果是怎样的????为什么会是这样呢???
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017925 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved