C语言高级编程:数组名赋值给指针变量的用法解析

代码:

#include<stdio.h>

typedef struct test
{
    int a;
    int b;
    int c;
} TEST;

TEST arr[]={
    {1,2,3},
    {4,5,6},
    {7,8,9}
};

void main(void)
{
    TEST *tmp;
    tmp = arr;

    printf("tmp: %d, %d, %d,%d, %d, %d,%d, %d, %d\n", tmp[0].a, tmp[0].b, tmp[0].c, tmp[1].a, tmp[1].b, tmp[1].c, tmp[2].a, tmp[2].b, tmp[2].c);
    printf("arr: %d, %d, %d,%d, %d, %d,%d, %d, %d\n", arr[0].a, arr[0].b, arr[0].c, arr[1].a, arr[1].b, arr[1].c, arr[2].a, arr[2].b, arr[2].c);
}

 

执行结果:

[baoliw@AONTFN07 ~]$ ./a.out

tmp: 1, 2, 3,4, 5, 6,7, 8, 9

arr: 1, 2, 3,4, 5, 6,7, 8, 9

 

结果分析:

1)数组名可以直接赋值给相同类型的指针变量

2)指针变量可以采用类似数组的用法,如:tmp[0].a

 

注:不能将数组名赋值给数组变量,如:

TEST jj[3];

jj = arr;

编译将产生错误: error: incompatible types when assigning to type ‘struct TEST[3]’ from type ‘struct TEST *’

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello-linux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值