通过对C语言的学习,相信大家都知道结构体能够直接赋值,但是如果结构体内部是数组,那情况又会如何呢?
结果是,还是能够直接赋值,且是深拷贝,就像是C++实现的=重载一样的效果。
以下是一段示例程序,将帮助你理解:
#include "stdio.h"
struct s_array{
int a[100];
};
//session 1:结构体能够作为一个对象返回
struct s_array Towfold(struct s_array s){
int j;
for(j=0; j<100; j++){
s.a[j] *= 2;
}
return s;
}
void Show_s_array(struct s_array *s_ptr){
int i;
printf("beggin/n");
for(i=0; i<100; i++){
printf("%d ",s_ptr->a[i]);
}
printf("/n");
}
int main(int argc, char* argv[])
{
printf("Hello World!/n");
struct s_array orange, lime, lemon;
int i = 0;
for(i=0; i<100; i++){
orange.a[i]