首页 > C语言中, 如下两种定义字符串的方式有什么不同?

C语言中, 如下两种定义字符串的方式有什么不同?

char* str = "abcd";

char str[5] = "abcd";

比如在分配内存的时候, 还有在其他方面有什么区别


前者的数据只可读不可写, 后者的可读可写. 原因是数据存储的位置不同, 可读写属性不同.


sizeof(type)        
sizeof expression   

两个版本都返回一个size_t类型的常量。
1) 返回 type 类型对应对象的大小(以字节为单位)。
2) 返回 expression 的返回类型对应对象的大小(以字节为单位)。

所以原来的回答有错误,现更正为: sizeof str1返回的是指针str1的字节大小,sizeof str2返回的是str2所标识数组的所有元素的字节大小。

【热门文章】
【热门文章】