想屁吃呢,当然不可以!
但是我们可以通过其他的途径实现,首先我们知道结构体是可以直接赋值操作的(可以去看编译好的汇编代码,其中结构体赋值采用是类似于memcpy这种形式,而不是逐个字段的拷贝。)不管是简单的数据类型如int、float等或者数组、指针、结构体等这些复杂数据类型,只要两个结构体类型相同,就可以实现赋值。但是值得注意的是,结构体在赋值的时候只是简单的浅拷贝,如果结构体内部出现了指针,假设有
struct A{ int k; int *pk; }a1,a2;
这个时候初始化a1后,使用a2=a1,a2和a1中pk指针都会指向我们申请的同一块内存区域,假设这个时候释放了a1的pk指针的内存,那么a2的pk指针就变成了了野指针。
数组相比于结构板就如同二等公民一般:
- 不能直接赋值
- 数组作为一个函数的参数传递时,退化成一个指针,结构体可以作为函数参数
- 数组不能作为函数的返回值,但是结构体可以