char *str="abcdef";
这里的str是一个指针,指向的"abcdef"是只读数据,默认不允许修改。
char str[7]="abcdef";
这里的str是一个数组,初始化为"abcdef",是可读写的。
这里的str是一个指针,指向的"abcdef"是只读数据,默认不允许修改。
char str[7]="abcdef";
这里的str是一个数组,初始化为"abcdef",是可读写的。
调试欢乐多
至于TC,他出来时还没有标准那,哪有支持啥标准的问题?
TC已经过时超过10年了,学习TC只是自己给自己下绊子,赶快把TC和和TC相关的书扔了
我用的是VC
听说VC支持标准也不是很好,能不能推荐个好点的编译器啊?
用char str[]=就不是呢?
注意你上面的这个代码: string -=2;
while (left < string)
{
ch = *left;
*left++=*string; // 这里,你的left是指向原来的字符串的开始, 你原来的字符串本来是只读的,所以你用*left = *string去修改他就回报错.
*string--= ch;
} 修改为数组形式后就没有这个问题了.
这里的str是一个指针,指向的"abcdef"是只读数据,默认不允许修改。
char str[7]="abcdef";
这里的str是一个数组,初始化为"abcdef",是可读写的。
可以这么理解啊
但是,指针读的是它的地址,地址是不变的,
8楼说的应该是对某个具体编译环境而言的,因为标准C++里根本没有这些概念
只有三种内存区域
不过了解更好
第一个主函数中的字符串为常量字符串,你要在子函数中更改它的值,当然通不过;第二个就不存在这个问题。这个与指针或数组没有联系,而是你更改“const”的问题。