最近好多公司来武汉招聘,我也参加了不少的笔试,虽然结果都不是很理想,但是也发现了自己很多的不足,先总结一下C语言中sizeof的一些用法,因为基本上只要是笔试题目,都会有关于这个的用法
1.sizeof的名称叫做求字节操作符,形式很像一个函数,就是求某个类型或者对象的字节数
2.sizeof的返回值类型是size_t,它是一个unsigned int类型
2.char、signed char和unsigned char的sizeof值为1,因为都是字符型变量
3.sizeof的用法:
char a='z';
sizeof(a); //值为1
----------------------------------------
sizeof(int); //32位系统中值为4
sizeof(double);//32位系统中值为8
sizeof(char); //值为1
----------------------------------------
char *p="zs";
sizeof(p) //32位系统中该指针的值为4
4.数组的sizeof值等于数组所占用的内存字节数,例如:
char c1[] = "abc";
int c2[3];
sizeof( c1); // 结果为4,字符 末尾还存在一个NULL终止符
sizeof( c2 ); // 结果为3*4=12(因为c2数组中的每一个成员都是int型,占四个字节)
5.结构体中的sizeof
(未完待续)--------->今天2月6日,接着写完
typedef struct _test
{
int i; //4个字节
float f; //4个字节
char c; // 1个字节
} test;
test *pt;
printf("int i的字节:%d/n",sizeof(pt->i)); //输出4
printf("float f的字节:%d/n",sizeof(pt->f)); //输出4
printf("char c的字节:%d/n",sizeof(pt->c)); // 输出1
printf("结构体test:%d/n",sizeof(test)); //输出12,涉及到字节对齐