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个字节。