学习C语言的时候,发现typedef和struct这个有点迷糊,继续学习,发现也不是特别难,正好抽时间总结一下。

1、首先看个例子:

//typedef与struct
#include <stdio.h>
#include <string.h>  //使用strcpy();
//结构定义,Student是一个Tag标签,区分其他结构
struct Student
{
char name[50];
int  age;
float score;
};
int main(){
// 声明
struct Student student;
// 使用赋值
strcpy(student.name,"Tom");
student.age=25;
student.score=99.0;
// 使用读取
printf("student.name : %s\n",student.name);
printf("student.age : %d\n",student.age);
printf("student.score : %.2f\n",student.score);
return 0;
}

不难看出,我在main函数之前定义了一个struct Student结构,存储学生的姓名,年龄,分数

注意:struct Student结构大括号{}后面有一个分号“;”,相当于一条语句。

main函数中,对struct Student结构进行了使用

2、下面继续:

//typedef与struct
#include <stdio.h>
#include <string.h>  //使用strcpy();
//结构定义,Student是一个Tag标签,区分其他结构
struct Student
{
char name[50];
int  age;
float score;
} student;//变量
int main(){
// 使用赋值
strcpy(student.name,"Tom");
student.age=25;
student.score=99.0;
// 使用读取
printf("student.name : %s\n",student.name);
printf("student.age : %d\n",student.age);
printf("student.score : %.2f\n",student.score);
return 0;
}

这个例子,和第1个例子中,区别在于:

(1)struct Student结构大括号后面多了一个student(注意大小写,c语言区分大小写);

(2)main函数中,我并没有单独声明student,就直接使用了。其实,在定义的时候,student(小写)就是声明的变量;

其实这两种方式是一样的。

3、看第三个例子

//typedef与struct
#include <stdio.h>
#include <string.h>  //使用strcpy();
//结构定义,Student是一个Tag标签,区分其他结构
typedef struct Student
{
char name[50];
int  age;
float score;
} Student;//别名
int main(){
//申明
Student student;
// 使用赋值
strcpy(student.name,"Tom");
student.age=25;
student.score=99.0;
// 使用读取
printf("student.name : %s\n",student.name);
printf("student.age : %d\n",student.age);
printf("student.score : %.2f\n",student.score);
return 0;
}

例子中,多加了一个typedef,相当于给struct Student  取了一个别名:Student,这个例子就和第1个例子很像了,只是申明的时候少写了一个struct

例2,和例3,同样在struct大括号后面写的字符串,例2表示:变量,例3表示:别名

4、当然,也可以使用指针

//typedef与struct
#include <stdio.h>
#include <string.h>  //使用strcpy();
//结构定义,Student是一个Tag标签,区分其他结构
typedef struct Student
{
char name[50];
int  age;
float score;
} Student;//别名
int main(){
//申明
Student student;
Student *pStudent=&student;
// 使用赋值
strcpy(pStudent->name,"Tom");
pStudent->age=25;
pStudent->score=99.0;
// 使用读取
printf("student.name : %s\n",pStudent->name);
printf("student.age : %d\n",pStudent->age);
printf("student.score : %.2f\n",pStudent->score);
return 0;
}

好了,先写到这里,以后再补充,欢迎大家批评指正。

欢迎交流     博主QQ:1940607002

程序员之路:C语言typedef和struct相关推荐

  1. 程序员之路──如何学习C语言并精通C语言

    程序员之路──如何学习C语言 学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通.如何以最小的代价学习并精通C语言是本文的主题.请注意,即使是"最小的代价",也绝不是什么 ...

  2. 程序员感悟----路该怎么走

    有一句话我一直记得很深,"当人深处迷茫之中时早已不再迷茫".很绕很矛盾的话,也可能有人听到后会马上跳脚喊,我一直迷茫怎么还是迷茫呢?呵呵.静一下想一下再喊. 大家都这么大了,路该怎 ...

  3. 程序员之路,蛇年快加速!

    转眼一年时间又过去了,时间如弹指间灰飞烟灭,程序员之路,却在缓慢加速... 春节,或许你没有回家,继续奋斗在开发一线上:或许你回家却被亲人朋友拷问了一把,想必清醒了许多,对未来思虑更多. 但凡春节过后 ...

  4. 程序员怎么看待C语言?最伟大?最落后?

    一,前言 对我来说,C语言应该可以算得上是世界上最伟大的编程语言.全中国口气最大的程序员,业界称之为"垠神",曾经发过文章吐槽过业界各种主流的编程语言(对Java,的Python稍 ...

  5. CSDN学霸课表——2017年PHP程序员未来路在何方

    <2017年PHP程序员未来路在何方> PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . Go . Py ...

  6. 【转】基础的重要性(程序员之路) 经验分享15篇

    原文链接:基础的重要性(程序员之路) 基础的重要性(程序员之路) 学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心.最近在网上也看了许多前辈们的经验建议,再结合自 ...

  7. 一个老程序员的程序员之路

    一个老程序员的程序员之路 写在前面 老程序员老了,已经写不动了,但是我依然深爱着程序员这个职业,谨以此文与那些渴望成为程序员的年轻一代闹闹科.         也许我们都曾经年轻,但是总会年轻不再,所 ...

  8. 从测试的角度来重新反思我们自己的程序以及我们的程序员之路——“通过追本溯源来进行前瞻性思考”...

    从测试的角度来重新反思我们自己的程序以及我们的程序员之路--"通过追本溯源来进行前瞻性思考" 最近比较忙,而且情绪上有些浮动,但控制的非常好.这几天协会搞一个编程比赛,部分的题目是 ...

  9. 程序员应该学习C语言的十个理由

    程序员应该学C语言的十个理由的文章说:每个程序员在他们的编程事业生涯当中都应该学C语言.C语言有太多不容忽视的好处.它不仅可以带来更多的工作机会,而且也会在总体上让你对计算机有更多的了解. 1)相对于 ...

  10. 好程序员Java分享SQL语言之索引

    好程序员Java分享SQL语言之索引,前言:本章我们将学习MySQL中的索引,本文将从索引的作用.索引的分类.创建索引的语法.索引的使用策略以及索引的实现原理等方面带大家了解索引. 索引的作用 索引的 ...

最新文章

  1. 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较
  2. eWebEditor不支持IE8的解决方法
  3. 一个非常巧妙的 hashcode 算法 return h (length-1);
  4. git 创建webpack项目_Webpack入门:从安装到配置
  5. mysql 触发器计算总价,mysql’插入’触发器根据其他字段计算字段
  6. 计算器排html页面,htmltest~计算器界面的实现
  7. c语言程序设计电子图书 汉诺塔,用C写的汉诺塔(hanoi)程序
  8. 前端:CSS/13/HTML引入CSS的方法,CSS表格属性,盒子模型,上下外边距合并
  9. GET和POST本质区别
  10. 稳定排序与不稳定排序
  11. 3PAR存储双活LUN扩容方法
  12. [C#] 软硬结合第二篇——酷我音乐盒的逆天玩法
  13. postgresql中实现按周统计详解
  14. 遗传算法(Java模拟)
  15. aop:aspectj-autoproxy
  16. Linux系统安全以及应用
  17. TO_DATE()函数?
  18. js元素offset与client
  19. Unity3D学习记录——NGUI Sprit
  20. java程序员建议考软考中级的哪一个证书

热门文章

  1. 龙卷风收音机绿色版cradio_chs
  2. 贪吃蛇源码注释过程(未完成)
  3. 国内外各大奶粉品牌分析
  4. Re-enable SSLv3 on Firefox 34
  5. 神舟z7m安装Linux,神舟战神Z7M U盘装系统win8教程
  6. 校园市场不是伪需求,2017校园市场依旧潜能无限
  7. 【新梦想学员干货】必看!年薪30W的软件测试“老司机”工作经验。
  8. 前端zrender框架使其可拖拽
  9. 腾讯可视化, 低代码生成器,正式开源!
  10. WhatsUp的邮件提醒设置