C语⾔⾼级编程:数组名赋值给指针变量的⽤法解析代码:
1#include<stdio.h>
2
3typedef struct test
4{
5 int a;
6 int b;
7 int c;
8} TEST;
9
10TEST arr[]={
11 {1,2,3},
12 {4,5,6},
13 {7,8,9}
14};
15
16void main(void)
17{
18 TEST *tmp;
19 tmp = arr;
20
21 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);
22 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);
23}
执⾏结果:
[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 *’
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论