c语言的关于结构体中含有指针问题?

c语言的结构体中含有指针来计算结构体数据分配内存空间大小是怎么分配的呢?如下程序为什么输出的是16,而不是4+8=“12“呢?请大神指点小弟一下!谢谢!voidtest2... c语言的结构体中含有指针来计算结构体数据分配内存空间大小是怎么分配的呢?如下程序为什么输出的是16,而不是4+8=“12“呢?请大神指点小弟一下!谢谢!
void test2(){

struct student{

int age;

char *a;

}str = {18,"小强"};

printf("%d",sizeof(struct student));

}

int main(int argc, const char * argv[])

{

test2();

return 0;

}
展开
 我来答
songqier
2013-10-24 · TA获得超过370个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:129万
展开全部
这是对齐问题,是在编译的时候,由编译器根据所在的系统平台来完成的。对齐的英文单词为:align。
看篇文档,链接如下:(说明:可暂时不理解对齐这个东西,往后深入编程以后,慢慢体会就来了,过来人担保,先不理解对齐,不会影响你学习编程。)

http://www.189works.com/article-10322-1.html
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彭珂的课堂
2021-01-24 · IT资讯、技能教学、学习经验分享。
彭珂的课堂
采纳数:98 获赞数:343

向TA提问 私信TA
展开全部

C语言_071_指针的定义和使用_上

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欢乐多Ek
2013-10-24 · TA获得超过478个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:415万
展开全部
指针8字节,64位程序吗?
追问
嗯,是64位编译器。
追答
看楼上的吧,确实是对齐问题,建议一开始就养成这种习惯,小的放前面,对以后大有裨益。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式