1.问题描述:
我先定义了一个字符数组,并初始化,如下:
char SendBuff[] = "ABCDEFGH";
然后我用strlen和sizeof分别计算它们在内存占用的字节大小:
len = strlen(SendBuff);
len_1 = sizeof(SendBuff);
然后在通过printf在电脑上位机上显示,结果是len = 16, len_1 = 8,这个结果我很疑惑,我觉得len应该等于8,sizeof等于9
然后我去看了这两个变量在内存中的值为十六进制len = 0x00000010和len_1 = 0x00000008,确实是对应16和8,为什么呢?
后来我将char SendBuff[] = "ABCDEFGH"; 改为char SendBuff[] = "12345678"; 这两个变量在内存中的值为十六进制len = 0x00000008和len_1 = 0x00000008,结果就正常了,什么原因呢? |