C语言把字符串当成是数组形式的byte
对于C语言来说,以下的两种创建char型数组方法一致,由此可看出char型name数组会自动补上\0
char name[] = "Zed";
char full_name[] = {'Z', 'e', 'd', '\0'};
使用sizeof()
能否询问C语言数组的大小(单位是byte)
how to break it
1.如果full_name不加上\0,则会打印如下图所示,应该是出现了奇怪的东西
2. 打印areas[10],出现了负数
附加题
- areas[0] = 100,打印出来就是100
- 与1一样
- 将name[0]赋值给areas[0],会打印字母的ASCII码值
- 64位和32位的int型都是占4字节,两者的主要区别在于
32 | 64 | |
---|---|---|
char*(指针变量) | 4字节 | 8字节 |
long | 4字节 | 8字节 |
unsigned long | 4字节 | 8字节 |