数组 sizeof

定义一个数组a[5];

sizeof(a)= sizeof(int)*5;在32位系统下是20.

sizeof(a[0])的值是4;

按理说啊a[5]是越界的,但是sizeof(a[5])是合法的因为sizeof不是函数,而是关键字,关键字求值是在编译的时候,虽然并不存在a[5]这个元素,但是也并没有访问这个元素,而是仅仅根据这个元素的值去确定它的值所以这里a[5]并没有错。

这里顺便说一下首先是预编译:展开#开头的文件顺便说一下include""和include<>的区别,前者甘肃编译器去源程序所在目录里找,如果找不到再到默认路径里找,后者告诉你去系统默认的路径去寻找相关文件。

编译阶段:这要是检验代码语法错误,以及将c语言转化成汇编语言。

汇编阶段:将汇编代码编译成目标文件。最后就是链接程序喽。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。