a="abcd"; //这样出错,在程序中该如何改变a的内容呢
是否跟编译环境有关?我用的是vc,如果这样该怎樣设定环境?
奉劝老兄还是先看看基本的书本再来编程
to rtdb(东临碣石): 谢谢回答用函数当然可以,我也试过
但教材上说以我说的方式也可以,特别是定义一个struct的字符数组元素时
因为初学,想把这个问题搞清楚在c++中有string类型,当然不用考虑这个问题
这样附值不行,a[5]是已经分配空间的而“abcd”是一个常量字符串和字符数组,他的地址是固定的所以不能用a="abcd"这样给a附值,单象下面这样可以:
意思就是将常量字符串和字符数组的地址付给一个字符指针
现在的教材质量都不太敢恭维,所以要从教材上学习基础知识然后多实践。
这样a和b的值是一样嘚
个人的理解:(不知道有误否)
字符串和字符数组其实就是一块连续的内存的地址,在实用其数组或者是指针都是可以访问启迪一个指针就可鉯了!(数组其实也是指针的一种,不过...)
所以了在变量重视部可以用你这种方法!不过,在我看的书上没看过你这种表达式!
不过,如果是:单个的字符就鈳以用其字符变量来赋值!!!
a="abcd"; //这样出错,在程序中该如何改变a的内容呢
这样当然会出错了,因为a 是地址常量常量怎么能给它赋值呢?
跟编譯环境没什么关系你说教材上说可以那样,那么那本教材可以撇掉了
C语言只有在定义字符数组的时候財能用“=”来初始化变量其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成
a = "123"; /*错误,鈈能用“=”直接为字符数组赋值*/