c语⾔结构体赋值时使⽤点号.最近发现⼀种⽐较⽅便的⽅式来对结构体进⾏赋值,那就是通过点号来赋值。
实例代码如下
struct {
int a, b, c, d;
}test={
.c = 3,
.b = 2,
.d = 4,
.a = 1
c语言struct用法例子};
通过.来赋值的话,可以不需要按照结构体中的变量顺序,⽽是通过指定变量进⾏赋值。
另外⼀个例⼦如下,可以直接对嵌套的结构体赋值。
#include <stdio.h>
int main()
{
struct person{
int age;
char name[30];
};
struct test{
struct person p1;
};
struct test *t;
struct test tt={
.p1={
.age=19,
.name="hello"
}
};
t=&tt;
printf("%s",t->p1.name);
return 0;
}
还能对结构体数组赋值
#include <stdio.h>
struct
{
int arr[3];
int b;
} test[] = {
[0].arr =
{1, 6, 8},
[1].b = 2
};
int main()
{
int i;
printf("结构体变量test[0]的参数如下\n");
for (i = 0; i < 3; i++)
printf("test[0].arr[%d]=%d ", i, test[0].arr[i]);    printf("test[0].b=%d\n\n", test[0].b);
printf("结构体变量test[1]的参数如下\n");
for (i = 0; i < 3; i++)
printf("test[1].arr[%d]=%d ", i, test[1].arr[i]);    printf("test[1].b=%d\n", test[1].b);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。