BYTE数组为什么可以这么赋值解决办法
BYTE数组为什么可以这么赋值
最近看代码时发现MFC里一个地方的代码,如:
BYTE pa[] = "\x10\x2" "cd";
复制后pa在内存中的值为0x10 0x02 0x63 0x64 0x00
有几个地方不太明白,希望能解释下相关规则
1、字节数组的赋值为什么可以用字符串赋值。
2、用一个字符串可以理解,为什么可以像上面那样多个字符串连着写,没有语法错误。
3、即便用多个字符串可以赋值,但为什么前面最后一个串中的\0被保留了,而前面的串中\0都被丢弃了?
------解决方案--------------------
"\x10\x2" "cd"就等于"\x10\x2cd"
"\x10\x2cd"这个东西就是字符数组
------解决方案--------------------
BYTE 实际是 unsigned char 是无符号字符类型.
几个字符串按那样的写法,编译器会自动连接成一个.
------解决方案--------------------
1、字节数组的赋值为什么可以用字符串赋值。
---这是初始化,只有初始化时候可以这样
2、用一个字符串可以理解,为什么可以像上面那样多个字符串连着写,没有语法错误。
---多个字符串一起时可以的,相当于连接在一起
3、即便用多个字符串可以赋值,但为什么前面最后一个串中的\0被保留了,而前面的串中\0都被丢弃了?
---0x10 0x02 0x63 0x64 0x00
---\x10 \x2 c d 0
---前两个是转义字符 最后以0结尾
---你说的\0不知道是指什么
最近看代码时发现MFC里一个地方的代码,如:
BYTE pa[] = "\x10\x2" "cd";
复制后pa在内存中的值为0x10 0x02 0x63 0x64 0x00
有几个地方不太明白,希望能解释下相关规则
1、字节数组的赋值为什么可以用字符串赋值。
2、用一个字符串可以理解,为什么可以像上面那样多个字符串连着写,没有语法错误。
3、即便用多个字符串可以赋值,但为什么前面最后一个串中的\0被保留了,而前面的串中\0都被丢弃了?
------解决方案--------------------
"\x10\x2" "cd"就等于"\x10\x2cd"
"\x10\x2cd"这个东西就是字符数组
------解决方案--------------------
BYTE 实际是 unsigned char 是无符号字符类型.
几个字符串按那样的写法,编译器会自动连接成一个.
------解决方案--------------------
1、字节数组的赋值为什么可以用字符串赋值。
---这是初始化,只有初始化时候可以这样
2、用一个字符串可以理解,为什么可以像上面那样多个字符串连着写,没有语法错误。
---多个字符串一起时可以的,相当于连接在一起
3、即便用多个字符串可以赋值,但为什么前面最后一个串中的\0被保留了,而前面的串中\0都被丢弃了?
---0x10 0x02 0x63 0x64 0x00
---\x10 \x2 c d 0
---前两个是转义字符 最后以0结尾
---你说的\0不知道是指什么