关于数组赋值的问题

数组刚开始一直认为不能被直接赋值,但是当用到结构体之后发现,结构体里面的数组类型变量竟然可以直接被赋值。

首先,赋值就是将一段内存中的内容拷贝到另一段内存当中。在C语言中赋值要求,等号左边必须是变量。

当我们试图对数组进行赋值,数组名代表首地址,而他是一个常量,将常量赋值给一个常量显然是不行的。

int main(){
    char n[20];
    char m[20];
    scanf("%s",n);
    scanf("%s",m);    
    printf("%s\n",n);
    printf("%s\n",m);
    n=m;
    printf("%s",n);
} 运行是会报错的

但是在结构体中,将一个结构体变量的内容赋值给一个结构体变量这是行得通的,因为此时被赋值的是变量。相当于把一个结构体变量的内容完全拷贝一份放到另一个结构体变量。

int main(){
    typedef struct stu{
        char name[20];
    }p;
    p a={"wo wo"};
    p b;
    b=a;
    printf("%s",b.name);
    
}

是可以成功将a的内容赋值给b 

typedef是为结构体类型struct stu起个别名 p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值