| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12107 人关注过本帖, 2 人收藏
标题:哥出几个 c 语言 基础题, 测测你可能过 2 级
只看楼主 加入收藏
许苏娟
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:9
注 册:2010-4-3
收藏
得分:0 
谁能告诉我(1)为什么是8???
2010-04-05 10:54
woodydongli
Rank: 2
等 级:论坛游民
帖 子:57
专家分:84
注 册:2010-4-4
收藏
得分:0 
以下是引用许苏娟在2010-4-5 10:47:58的发言:

楼上那位做的对么?
我也是新手,大家一起交流..最近,学学C语言..
2010-04-05 10:56
woodydongli
Rank: 2
等 级:论坛游民
帖 子:57
专家分:84
注 册:2010-4-4
收藏
得分:0 
以下是引用许苏娟在2010-4-5 10:54:29的发言:

谁能告诉我(1)为什么是8???
要内存对齐,char是一个字节.int四个字节..在32位系统里.
  char,的起始地址为0,下一个地址为1,1 不是后面int类型占的空间4的倍数..所以它就会
把 int类型数据 向后面移吧.移到4开头,到7.所以其实它在char数据后面其实空了三个字节的..

但是有时候,可以人为地加一个#pragma pack()  ,这样你可以自己指定对齐的方式了,比如#pragma pack(2),那刚才的题目应该是6.而不是8了,括号里的数就是你要对齐方式.

至于为什么要内存对齐,简单说是空间来换时间,
    上面,只是我个人的理解..详解,求助GOOGLE.   
2010-04-05 11:05
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 102楼 woodydongli
内容不能为空

我就是真命天子,顺我者生,逆我者死!
2010-04-05 12:48
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 101楼 许苏娟
下次跟你说啊

我就是真命天子,顺我者生,逆我者死!
2010-04-05 19:07
zhaolin
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-4-5
收藏
得分:0 
我就更不行了 现在连看就看不懂哦  还在努力学习中  现在被      这是整的全身心都是疲惫;了哦  等不到好久就回做了
2010-04-06 02:03
丶虫虫
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2010-4-6
收藏
得分:0 
努力!!!!!!!!!
2010-04-06 17:32
asnail
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-6
收藏
得分:0 
第二题为什么是4,而不是8?
2010-04-06 18:00
liuyafei
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2010-4-6
收藏
得分:0 
最后一题不会造成死循环,因为对于个负数来说自减就是让他+1,徐洪波的视频就有这种讲解
2010-04-06 18:32
sweetxiang
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-24
收藏
得分:0 
都不会咋办?
2010-04-07 09:05
快速回复:哥出几个 c 语言 基础题, 测测你可能过 2 级
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013676 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved