C语言中,有a[n]、b[n]两个数组,其中a数组元素值已知,要使b数组元素和a数组元素相等,我记得直接写b = a是不对的,这样就相当于使b的数组指针指向了a,一旦a数组元素的值改了,b也会跟着改,只能

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 16:46:08

C语言中,有a[n]、b[n]两个数组,其中a数组元素值已知,要使b数组元素和a数组元素相等,我记得直接写b = a是不对的,这样就相当于使b的数组指针指向了a,一旦a数组元素的值改了,b也会跟着改,只能
C语言中,有a[n]、b[n]两个数组,其中a数组元素值已知,要使b数组元素和a数组元素相等,
我记得直接写b = a是不对的,这样就相当于使b的数组指针指向了a,一旦a数组元素的值改了,b也会跟着改,只能分别将a元素的值赋给b元素,对吧.
那如果是一个构造体变量呢?假设有构造体A创建两个变量a1和a2,a1已经赋值,要是a2和a1相同,是不是也只能分别
a2.元素1 = a1.元素1;
a2.元素2 = a1.元素2;
……
这样赋值?

C语言中,有a[n]、b[n]两个数组,其中a数组元素值已知,要使b数组元素和a数组元素相等,我记得直接写b = a是不对的,这样就相当于使b的数组指针指向了a,一旦a数组元素的值改了,b也会跟着改,只能
前面b=a不是指针指向a,数组和指针是有区别的,数组是栈,是不能直接用=来拷贝的,即使a和b都是指针,也不能这样直接等过去,因为那样就会像你所说的那样,两者同时指到同一个位置,不是真正拷贝过去
如果是结构体,对于一些编译器是可以直接赋值的,有些则不可以,一般来说都可以直接等.