Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 数组上的结构赋值运算符_Arrays_Struct_Assignment Operator - Fatal编程技术网

Arrays 数组上的结构赋值运算符

Arrays 数组上的结构赋值运算符,arrays,struct,assignment-operator,Arrays,Struct,Assignment Operator,假设我定义了这样一个结构: struct person { char name [10]; int age; }; 并声明了两个人变量: person Bob; person John; 其中Bob.name=“Bob”,Bob.age=30和John.name=“John”,John.age=25。我打电话 Bob = John; struct person将执行一个任务,并将Johns的成员值分配给Bob的 但是数组不能分配给数组,那么“name”数组的分配是如何工作

假设我定义了这样一个结构:

struct person
{
    char name [10];
    int  age;
};
并声明了两个人变量:

person Bob;
person John;
其中Bob.name=“Bob”,Bob.age=30和John.name=“John”,John.age=25。我打电话

Bob = John;
struct person将执行一个任务,并将Johns的成员值分配给Bob的


但是数组不能分配给数组,那么“name”数组的分配是如何工作的呢

当C语言最初被组合在一起时,它并不打算成为一种强大的力量,几十年后仍在使用。它的目的是能够快速、轻松地满足一些眼前的需求,但它非常可怕。人们认为理所当然的许多特性,例如通过值传递结构的能力,或者(如果我记得的话)甚至直接分配它们的能力都不存在。然而,数组到指针的分解从一开始就是语言的一部分

当结构在语言的后期版本中变得更强大时,允许符号
struct1=struct2
表示从
struct2
struct1
的副本,因为这样的表达式在此之前没有任何意义。另一方面,数组类型有它们自己的预先存在的规则,如果不破坏为这种初出茅庐的语言编写的几十个程序,就无法允许数组赋值像结构赋值一样工作


因此,复制包含数组的结构的工作方式将与复制数组的工作方式相同,因为只有在“按名称”访问数组时,才会将数组分解为指针。如果结构包含
无符号字符byteArray[64],从结构的角度来看,这只是一个64字节的blob。如果引用结构byteArray
,该引用将像数组变量引用一样分解为指针,但是当将结构赋给同一类型的另一个变量时,编译器会忽略内部结构。

当C语言第一次抛出时,它并不是要成为一种强大的力量,几十年后仍在使用。它的目的是能够快速、轻松地满足一些眼前的需求,但它非常可怕。人们认为理所当然的许多特性,例如通过值传递结构的能力,或者(如果我记得的话)甚至直接分配它们的能力都不存在。然而,数组到指针的分解从一开始就是语言的一部分

当结构在语言的后期版本中变得更强大时,允许符号
struct1=struct2
表示从
struct2
struct1
的副本,因为这样的表达式在此之前没有任何意义。另一方面,数组类型有它们自己的预先存在的规则,如果不破坏为这种初出茅庐的语言编写的几十个程序,就无法允许数组赋值像结构赋值一样工作

因此,复制包含数组的结构的工作方式将与复制数组的工作方式相同,因为只有在“按名称”访问数组时,才会将数组分解为指针。如果结构包含
无符号字符byteArray[64],从结构的角度来看,这只是一个64字节的blob。如果引用结构byteArray
,该引用将像数组变量引用一样分解为指针,但是当将结构分配给相同类型的另一个变量时,编译器会忽略内部