static const char * const和static const char 有什么区别?
可能重复:
char a [] =“string”有什么区别; 和char * p =“string”;
数组版本是否会分配数组内存,因此一个100字节的字符串将在常量部分使用100个字节,在静态数组上使用100个字符,或者它将仅使用100个字节? 和指针版本一样,除了字符串的100个字节之外,还会为指针分配字大小,还是将指针优化为常量段地址?
如果您使用普通计算机,则使用.rodata
部分:
#include static const char *s = /* string of 100 characters */; int main(void) { puts(s); return 0; }
它在.rodata
部分中分配100 + sizeof(char *)
字节。
#include static const char s[100] = /* string of 100 characters */; int main(void) { puts(s); return 0; }
它在.rodata
部分中分配100
个字节。