您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言数组(array)可以是左值吗

时间:12-30来源:作者:点击数:

在1.9中,左值被定义为可被赋值的表达式。那么,数组是可被赋值的表达式吗?不是,因为数组是由若干独立的数组元素组成的,这些元素不能作为一个整体被赋值。下述语句是非法的:
    int x[5],y[5];
    x=y;

不过,你可以通过for循环来遍历数组中的每个元素,并分别对它们赋值,例如:
    int i;
    int x[5];
    int y[5];
    ......
    for(i=0; i<5,i++)
    x[i]=y[i];
    ......

此外,你可能想一次拷贝整个数组,这可以通过象memcpy()这样的函数来实现,例如:
    memcpy(x,y,sizeof(y));

与数组不同,结构(structure)可以作为左值。你可以把一个结构变量赋给另一个同类型的结构变量,例如:
    typedef struct t_name
    {
    charlast_name[25];
       char first_name[15];
    char middle-init [2];
    } NAME
    ...
    NAME my_name, your_name;
    ...
    your_name = my_name;
    ...

在上例中,结构变量my_name的全部内容被拷贝到结构变量your_name中,其作用和下述语句是相同的:
    memcpy(your_name,my_name,sizeof(your_name);

请参见:

1、什么是左值(lvaule)?

2、什么是右值(rvaule)?

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门