Ant*_*eev 0 c pointers const-correctness c-strings string-literals
char* str ="Hello";
在上面的代码中,文字“ Hello”存储在DATA段中,并且是只读的。所以总是声明它不是更好:
const char* str = "Hello";
避免使用不正确的代码,例如:
*(str+1) = 't';
“ Hello”存储在DATA段中
“ DATA”或.data将指向具有静态存储持续时间的已初始化读/写变量所在的段。字符串文字不存储在此处,而是更有可能存储在名为中.rodata,或者可能.text与代码一起存储。请参见字符串文字:它们去哪里了?
所以总是声明它不是更好:
const char* str = "Hello";
是的,您应该始终将const指针限定为字符串文字。普遍认为这是C语言中的最佳做法(在C ++中是强制性的)。
| 归档时间: | 
 | 
| 查看次数: | 95 次 | 
| 最近记录: |