您的位置:

c语言数组为啥不能直接赋值,c语言数组为啥不能直接赋值

本文目录一览:

在C语言中,为什么数组之间不可以直接赋值,而结构体之间可以直接赋值,求了解的给详细解答一下,谢谢!!!

因为数组名就是数组第一个元素的指针常量,是一个常量左值。可以赋值的必须是非常量左值,常量左值和右值是不可以被赋值的。

以上是我个人的理解,有疑问继续追问。

C语言中结构体中的数组,不能直接赋值吗

数组不能整体赋值,需要逐个元素赋值,但是如果这个数组是一个结构体的成员,可以通过结构体之间的直接赋值间接达到数组整体赋值的效果,即:

t1.mark=t2.mark;//非法,数组不能直接整体赋值。

t1=t2;//合法,在此之后,t2.mark数组将被整体复制到t1.mark数组。

C语言中结构体中的数组,不能直接赋值吗?

因为数组名就是数组第一个元素的指针常量,是一个常量左值。可以赋值的必须是非常量左值,常量左值和右值是不可以被赋值的。 以上是我个人的理解,有疑问继续追问。