c语言结构体赋值时使用点号.
最近发现一种比较方便的方式来对结构体进行赋值,那就是通过点号来赋值。
实例代码如下
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语言结构体赋值时使用点号.相关推荐
- C语言结构体赋值和有指针成员的结构体赋值
1 结构体赋值 #include <windows.h>struct MyStruct {int a;int b;char c[20]; };int APIENTRY WinMain(H ...
- c语言结构体赋值,并输出各种类型变量的值
1 代码 #include<stdio.h> struct Student{ char sex; int age; char name[10]; }; main(){ st ...
- 【C语言】结构体赋值
结构体在 C 程序中使用的较为频繁,能对数据有一定的封装的作用.对一个结构体赋值时,经常采用的方式是,分别对其成员变量赋值.那么能否将一个结构体用赋值号("=")直接赋值给另一个结 ...
- go 结构体赋值 invalid memory address or nil pointer dereference
go 指针结构体赋值 1.前言 2.举例 3.分析 4.解决 1.前言 日常生产中,当我们使用go指针结构体赋值时,会报出invalid memory address or nil pointer d ...
- c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事
一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...
- java发送c语言结构体_C语言中结构体直接赋值?
在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其进行赋值或初始化.简单结构体(不包含指针成员)直接赋值没有问题. 我们先下面 ...
- 结构体复数相乘c语言,复数乘法中的结构体赋值实现代码
复数乘法中的结构体赋值实现代码 废话不多说,直接上代码 复制代码 代码如下: #include using namespace std; typedef struct { double real; d ...
- C语言 | 结构体成员数组赋值的问题
C语言只有在定义字符数组的时候才能用"="来初始化变量,其它情况下是不能直接用"="来为字符数组赋值的,之所以不能赋值成功,是因为数组名是一个指针常量,指向固定 ...
- Go语言结构体的多字段赋值是并发安全的吗?
多字段更新? 并发编程中,原子更新多个字段是常见的需求. 举个例子,有一个 struct Person 的结构体,里面有两个字段.我们先更新 Person.name,再更新 Person.age ,这 ...
最新文章
- Animation动画:
- Oracle 高性能SQL引擎剖析----执行计划
- 2020/Province_C_C++_A/A/门牌制作
- SAP Spartacus popover Component 的单元测试
- jdk 1.8 不可变常量_在JDK 10中不可变与不可修改
- 佳能MP258的5200错误和P08代码解决方法及清零方法
- Python3 循环
- Tomcat Script(python)
- 基于FPGA实现uart串口模块——进阶版1
- MyEclipse的代码提示功能
- 【渝粤教育】广东开放大学 建筑设备 形成性考核 (33)
- 阿里云oss完成简单上传
- requestFullscreen()事件全屏不好使怎么解决
- CentOS7 安装jdk8教程
- VOC2007和COCOmAP计算
- RFID定位技术在仓库管理中的应用--新导智能
- 亚丁号云控之发布任务
- 领英动态和文章如何发布才能更好的带来询盘?
- 为什么IT行业工作那么火爆,仍然人才短缺
- java中堆和堆栈的区别
热门文章
- 融云--如何显示用户昵称和头像的
- PHP-mysqli_affected_rows($link);---mysqli_affected_rows() expects parameter 1 to be mysqli, object g
- C#使用QQ邮箱SMTP服务发送邮件
- 【连载】计算机组成原理 --- 第五章 中央处理器
- 2016CCPC东北地区大学生程序设计竞赛 (2018年8月22日组队训练赛)
- 《裸婚时代未播的结局》人人都该看看
- 【接口篇 / Wan】(5.2) ❀ 02. 固定 IP 宽带上网 ❀ FortiGate 防火墙
- ADS2017完全卸载
- Android应用内在线查看PDF文件
- Failure to create temporary file Permission denied