这种方式是定义了一个字符型指針指向常量字符串"abcde",可认为编译器做了下面的事情:在常量区分配6个字节分别放上a,bc,de,\0然后把a的地址返回给p。
这种方式是定義了一个字符char数组赋值其长度自动设置为"abcde"。
第一种指向了常量区无法修改内容。
第二种定义了普通的char数组赋值变量放在栈中,可以修改
C++中的字符char数组赋值逐个赋值时报錯的解决方法
C++中定义一个字符char数组赋值的时候如果初始化,则cout的时候不会出错,但是在逐个字符赋值的时候很容易出错。
如果我们逐个芓符的赋值:
原来是在逐个字符赋值的时候一定要记住最后来个s[len-1]='\0'; 这个是字符串的结束标志!!
第一段代码没囿动态分配空间,可理解为空指针
形如:“a[0] = “AAA”;”的赋值语句是错误的因为在C++中,无法通过给字符char数组賦值名赋值来实现给字符char数组赋值每一个元素赋值
正确的赋值方法应该是:
??输出结果为“AAA”。
??输出結果为“AAA”
这种方式是定义了一个字符型指針指向常量字符串"abcde",可认为编译器做了下面的事情:在常量区分配6个字节分别放上a,bc,de,\0然后把a的地址返回给p。
这种方式是定義了一个字符char数组赋值其长度自动设置为"abcde"。
第一种指向了常量区无法修改内容。
第二种定义了普通的char数组赋值变量放在栈中,可以修改