您的位置:首页 > 编程语言 > C语言/C++

100条经典C语言笔试题目整理

2014-11-01 16:43 316 查看
2、以下为Linux下32位C程序,请计算sizeof的值。

char str[] = "hello";
char *p    = str;
int   n    =10;
请计算:sizeof(str)= sizeof(p)= sizeof(n)=

sizeof与strlen的区别。1)sizeof是C语言的关键字,而strlen是函数;2)sizeof的参数类型较多,而strlen参数只能针对char型且必须以‘\0’结尾;3)数组做sizeof参数时不退化,而作为strlen参数时退化为指针(数组名传递给函数时退化为指针);4)计算时间不同,sizeof在程序编译的时候就已运行,而strlen是在函数运行时才进行运算(sizeof与初始化无关,strlen与初始化相关,参考13题);5)sizeof保证能容纳实现所建立的最大对象的字节大小,strlen测试从起始到第一个‘\0’结束,但strlen返回大小不包括0。

………………………………………………………………………………………………………………………………………………………

5、设有以下说明和定义:

typedef union{long i; int k[5];char c}DATE;
struct data {int cat;DATE cow;double dog;} too;
DATE max;
printf("%d",sizeof(struct data)+sizeof(max));
上述输出结果是———

(1)对于union存储使用公共空间,union所占空间为其中最大变量的空间;(2)结构体测占字节时要考虑字节对齐。(单独整理,见博客结构体字节对齐问题)

待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: