面试笔记第三章结构体,共用体,枚举

结构体区别于数组:1,有不同数据类型。2,可以直接相互赋值
class默认成员权限为private,struct默认为public
struct定义不允许递归定义,可以有指向本类型的指针
可以嵌套其他类型的struct
定义时可以赋初值,从前到后挨个赋值,不能跳过,后面未赋值的自动赋零值

struct st{
	int n;
	struct st *next;
};
static struct st a[3]={1,&a[1],2,&a[2],3,&a[0]},*p;

结构体的位字段,“位域”,“位段”
占用特定位数的结构成员,,每个成员都是二进制位,超出的只存低位,可以进行位运算

struct bs{
	unsigned a:1;
	unsigned b:3;
	unsigned c:4;
}bit,*pbit;

Union共用体
某一个时刻只存在一个被选中的成员
大小端
例:小端存储格式,低地址中存放是字数据 低字节
内存地址 左到右,低地址到高地址
0x1420 左到右,高字节到低字节

printf()参数从右向左入栈
long long a=1,b=2,c=3入栈为 0x01000000 0x00000000 0x02000000 0x00000000 0x03000000 0x00000000(1传进去相当于是 00 00 00 00 00 00 00 01倒过来,01 00 00 00 00 00 00 00)
printf("%d %d %d",a,b,c);输出的是int4个字节输出是0x01000000 0x00000000 0x02000000
1 0 2
如果入栈的时候是小于出栈字节数,无符号类型:高位补1;有符号类型:高位补符号位
32位系统:long long是8个字节,long是4个字节,int 是4个字节,short是2个字节,char是1个字节
64位系统:long是8个字节,int是4个字节,short是2个字节,char是1个字节

P44例五

枚举

enum weekday{
	sunday;
	monday;
	tuesday;
	wednesday;
	thursday;
	friday;
	saturday
}week_day;
enum weekday week_day2;

sizeof运算符
是一个单目运算符,并不是函数。它的计算发生在编译时刻,可以当成常量表达式使用,会忽略掉括号内的运算
sizeof(a++);不执行++

sizeof()要计算上’\0’
strlen遇到’\0’才停止,不会计算’\0’
sizeof("\0")==2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值