#define STR "test1"
Run Code Online (Sandbox Code Playgroud)
为什么这需要6个字节?
sizeof(STR)= 6
它与此无关#define
.字符数组的大小相同:
const char str[] = { "test1" };
sizeof (str) == 6
Run Code Online (Sandbox Code Playgroud)
这个字符串长6个字节的原因是C中的字符串有一个终止NUL字符来标记结尾.
a #define
只是在编译之前进行文本替换.
#define STR "test1"
sizeof(STR);
Run Code Online (Sandbox Code Playgroud)
实际上是由编译器看到的
sizeof("test1");
Run Code Online (Sandbox Code Playgroud)
现在为什么是6而不是5?因为字符串末尾有一个空终止符.
归档时间: |
|
查看次数: |
2604 次 |
最近记录: |