近期,我阅读了某新员工小刘写的C语言代码,发现其对结构体变量之间的赋值不是非常熟悉。

对于两个同样类型的结构体变量,他均採用的是逐个成员变量直接赋值的形式。例如以下的代码演示样例:

如上代码所看到的,tEmployeeInfoSrc和tEmployeeInfoDest是两个类型同样的结构体变量,tEmployeeInfoSrc(源结构体变量)中的各个成员变量已赋初值。现要使tEmployeeInfoDest(目的结构体变量)中的各个成员变量的值与tEmployeeInfoSrc中相应成员变量的值同样。小刘採用的方式是各个成员变量一一赋值。这尽管能够确保赋值操作的正确性,但并非最优的方法。
        针对以上代码,我们能够稍加改动。例如以下所看到的:

如上代码所看到的,我们能够直接将源结构体变量的值赋给目的结构体。将原来的三行代码缩减为一行。当一个结构体的成员变量较多时,各个变量逐一赋值显然过于繁琐。即採用直接赋值的方法更加简洁直观。
 
       两个同样类型的结构体变量相互赋值的情况还有好多种,例如以下代码所看到的:

指针和结构体是C语言的精华和难点所在,大家一定要在实战中学会它们的用法。

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5。微信号:245924426,欢迎关注!

)

最新文章

  1. Service Discovery with Apache Curator
  2. linux下的openoffice安装和服务自启动
  3. Python Tutorial 学习(三)--An Informal Introduction to Python
  4. 九度OJ 1552座位问题(dp)
  5. Swift 流程控制
  6. java设计模式--结构型模式--桥接模式
  7. ubuntu 14.04 安装matlab2015b(破解版),具体软件请访问我的网盘~
  8. 利用matlab进行协方差运算
  9. Markdown的简单用法
  10. Windows搭建wnmp
  11. OpenCV二维Mat数组(二级指针)在CUDA中的使用
  12. appium在android 7.0真机上运行报错command failed shell:............ps:'uiautomator"的解决方式
  13. equals方法中变量在前和在后的区别
  14. Ocelot简易教程(三)之主要特性及路由详解
  15. Linux命令——用户和用户组管理
  16. lucene中文分词——(四)
  17. Java类中代码的执行顺序 静态代码块>构造代码块>构造方法
  18. C语言函数实现的另类方法
  19. php中对象(object)与数组(array)之间的相互转换
  20. Django框架(二) MTV模型简介

热门文章

  1. WPF动画 - Loading加载动画
  2. CAD绘制固定圆形标注(网页版)
  3. IDEA常见问题
  4. (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d
  5. js 技巧 (八)JS代码判断集锦(之二)
  6. 搭建Samba共享服务器
  7. 树莓派 -- 输入设备驱动 (key) 续2: 转载 Setting up a GPIO-Button “keyboard” on a Raspberry Pi
  8. MyBatis 多参问题
  9. 在linux服务器上搭建Struts2项目运行环境
  10. JDK的安装和环境变量配置