最近发现一种比较方便的方式来对结构体进行赋值,那就是通过点号来赋值。

实例代码如下

struct {
int a, b, c, d;
}test={
.c = 3,
.b = 2,
.d = 4,
.a = 1
};

通过.来赋值的话,可以不需要按照结构体中的变量顺序,而是通过指定变量进行赋值。

另外一个例子如下,可以直接对嵌套的结构体赋值。

#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;
}

c语言结构体赋值时使用点号.相关推荐

  1. C语言结构体赋值和有指针成员的结构体赋值

    1  结构体赋值 #include <windows.h>struct MyStruct {int a;int b;char c[20]; };int APIENTRY WinMain(H ...

  2. c语言结构体赋值,并输出各种类型变量的值

    1 代码 #include<stdio.h> struct Student{   char sex;   int age;   char name[10]; }; main(){   st ...

  3. 【C语言】结构体赋值

    结构体在 C 程序中使用的较为频繁,能对数据有一定的封装的作用.对一个结构体赋值时,经常采用的方式是,分别对其成员变量赋值.那么能否将一个结构体用赋值号("=")直接赋值给另一个结 ...

  4. go 结构体赋值 invalid memory address or nil pointer dereference

    go 指针结构体赋值 1.前言 2.举例 3.分析 4.解决 1.前言 日常生产中,当我们使用go指针结构体赋值时,会报出invalid memory address or nil pointer d ...

  5. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

  6. java发送c语言结构体_C语言中结构体直接赋值?

    在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其进行赋值或初始化.简单结构体(不包含指针成员)直接赋值没有问题. 我们先下面 ...

  7. 结构体复数相乘c语言,复数乘法中的结构体赋值实现代码

    复数乘法中的结构体赋值实现代码 废话不多说,直接上代码 复制代码 代码如下: #include using namespace std; typedef struct { double real; d ...

  8. C语言 | 结构体成员数组赋值的问题

    C语言只有在定义字符数组的时候才能用"="来初始化变量,其它情况下是不能直接用"="来为字符数组赋值的,之所以不能赋值成功,是因为数组名是一个指针常量,指向固定 ...

  9. Go语言结构体的多字段赋值是并发安全的吗?

    多字段更新? 并发编程中,原子更新多个字段是常见的需求. 举个例子,有一个 struct Person 的结构体,里面有两个字段.我们先更新 Person.name,再更新 Person.age ,这 ...

最新文章

  1. Animation动画:
  2. Oracle 高性能SQL引擎剖析----执行计划
  3. 2020/Province_C_C++_A/A/门牌制作
  4. SAP Spartacus popover Component 的单元测试
  5. jdk 1.8 不可变常量_在JDK 10中不可变与不可修改
  6. 佳能MP258的5200错误和P08代码解决方法及清零方法
  7. Python3 循环
  8. Tomcat Script(python)
  9. 基于FPGA实现uart串口模块——进阶版1
  10. MyEclipse的代码提示功能
  11. 【渝粤教育】广东开放大学 建筑设备 形成性考核 (33)
  12. 阿里云oss完成简单上传
  13. requestFullscreen()事件全屏不好使怎么解决
  14. CentOS7 安装jdk8教程
  15. VOC2007和COCOmAP计算
  16. RFID定位技术在仓库管理中的应用--新导智能
  17. 亚丁号云控之发布任务
  18. 领英动态和文章如何发布才能更好的带来询盘?
  19. 为什么IT行业工作那么火爆,仍然人才短缺
  20. java中堆和堆栈的区别

热门文章

  1. 融云--如何显示用户昵称和头像的
  2. PHP-mysqli_affected_rows($link);---mysqli_affected_rows() expects parameter 1 to be mysqli, object g
  3. C#使用QQ邮箱SMTP服务发送邮件
  4. 【连载】计算机组成原理 --- 第五章 中央处理器
  5. 2016CCPC东北地区大学生程序设计竞赛 (2018年8月22日组队训练赛)
  6. 《裸婚时代未播的结局》人人都该看看
  7. 【接口篇 / Wan】(5.2) ❀ 02. 固定 IP 宽带上网 ❀ FortiGate 防火墙
  8. ADS2017完全卸载
  9. Android应用内在线查看PDF文件
  10. Failure to create temporary file Permission denied