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

时间:2022-09-05 23:13:32

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)结构体测占字节时要考虑字节对齐。(单独整理,见博客结构体字节对齐问题)

待续...