char*和char[]

来源:互联网 发布:涉密网络 编辑:程序博客网 时间:2024/06/06 08:46

char* s1 = "abcd";// 1

char s2[] = "abcd";// 2

char s3[] = { 'a', 'b', 'c', 'd'};// 3

以上三种定义都能通过编译。

其中s3的初始方式是非法的,因为没有终止符。

s1和s2的定义合法。

strlen( s1) 和strlen(s2)都等于4,s1[4]和s2[4]都是0,所以都可以通过cout<<s1<<s2的方式正常输出。

但s1指向的常量字符串,这意味着*s1='x'这样的语句在运行时会出错,而*s2='x'则没问题。


原创粉丝点击