C语言数组变量的值不能改变什么意思?我们用 array[a][b]=array[b][a]实现矩

C语言数组变量的值不能改变什么意思?我们用 array[a][b]=array[b][a]实现矩阵转置的输出不是改变了变量的值吗?求解答!谢谢!

数组名是个标号,不是一个变量,a只是a[0],a[1],a[2],a[3]的起始地址,编译程序在你后面用到a时会自动用a[0]的地址替换,那么你给这个标号赋值是非法的。数组名为a,可以拿它当成指针来用数组名是地址,但这个地址是固定不能被程序改变的,指针变量有自己的存放地址,可以修改,指针在使用时,与数组名差不多用法a[4]不是数组名,只是数组声明语句中表示数组名a对应的数组有几个元素,数组名是一种常量的表示法,而你文中类型标示符*变量名是指针变量的写法,虽然我们说数组名与指针的用法相同,但它们不是同一种对象。指针常量b的例子:intc[10];constint*b=c;使用时可以(*b)=5;或b[5]=6;如同c[0]=5;或c[5]=6;是同样的赋值
温馨提示:答案为网友推荐,仅供参考
相似回答