戴维营第八天上课总结
结构体是一个类似超级数组一样的定义, 它可以定义许多不同类型的变量, 用struct 加上变量名, 类似于int a这样子的定义, 但区别在于结构需要用{};等三个符号来概括包含里面的内容, 定义好之后, 可在main函数中直接调用, 用(.)或者(->)两个运算符进行调用.
struct book {char titleP[MAXTITL]char author[AXAUTL]float value }library;
上面这样子就是帮结构体book起一个别名叫做library, 在main函数当中我们也可以直接使用library, 还有另外一种声明方法.
struct {char titleP[MAXTITL]char author[AXAUTL]float value }library;
这样子写法就是一开始可以不用给结构体定义变量名, 到最后面的时候直接给结构体起另一个别名library, 这样子可以省略一个命名的步骤.
下面就是结构题的使用方法
#include <stdio.h> #include <string.h> #define MAXTITL 41 //书名的最大长度+1 #define MAXAUTL 31 //作者名的最大长度+1 struct book //结构模板: 标记book {char title[MAXTITL];char author[MAXAUTL];float value; };int main(int argc, const char * argv[]) {struct book library; //把library声明为book类型的变量printf("Please enter the book title.\n");gets(library.title); //gets是bug的存在, 容易溢出, 一般不推荐使用//scanf("%s",library.title); //访问title部分printf("Now enter the author.\n");gets(library.author); //gets是bug的存在, 容易溢出, 一般不推荐使用 // scanf("%s",library.author);printf("Now enter the value.\n");scanf("%f", &library.value);printf("%s by %s: $%.2f\n", library.title, library.author, library.value);printf("%s: \"%s\"($%.2f)\n", library.author, library.title, library.value);printf("Done.\n");return 0; }
C程序内存地址空间布局
1,文本短(.text:可执行的指令)
2.数据段
初始化数据段(全局变量, 静态变量)
非初始化数据段
初始化数据段需要我们自己定义, 运行之前就代入进去.
非初始化数据段是由系统在程序运行的时候代入进去的
3.栈(stack) 由系统自己分配
数据是先进后出(或者是后进先出)
a.局部变量
b.函数调用时返回地址
c.调用着的环境信息
4.堆(heap)需要我们自行分配释放管理(普通的局部变量)
由我们自己分配释放管理, 如果我们不去释放, 程序结束时才会由系统自动回收.
程序中的malloc, calloc, realloc等函数都是分配内存. 由小的空间向大的空间分配, 堆是从下向上分配.
转载于:https://www.cnblogs.com/iOSCain/p/3991540.html
戴维营第八天上课总结相关推荐
- 戴维营第二天上课总结
今天珊哥讲解了进制的转换, 以及C语言的32个关键字, 然后我自己尝试算了一道进制的转换题目 二进制转换十进制 1010 = 1*2^3+0*2^2+1*2^1+0*2^0 = 10 十进制转二进制 ...
- 戴维营第七天上课总结
今天的内容是关于字符串, 指针, 数组这些问题, 要知道在C语言中是没有为字符串定义一个类型的, 只有用char[]的数组类型的方式存储字符串, 打印的时候使用%s 打印, 指针呢, 变量的地址称为指 ...
- 戴维营第六天上课总结
今天珊哥给我们讲解了预处理,宏定义, 数组, 以及画图, 宏定义.... 编译预处理:对源程序进行编译之前所作的工作,它由预处理程序负责完成.编译时,系统将自动引用预处理程序对源程序中的预处理指令进行 ...
- 戴维营第五天上课总结
今天大茶给我们讲了C语言的递归以及函数的调用, 函数的调用, 可以在其他文件中创建函数的源文件, 在main文件中进行调用, 可以节俭在main函数的多行代码, 一旦程序出错, 调试起来也非常的方便, ...
- 戴维营第四天上课总结
今天大茶继续给我们讲解C语言的知识点, 以及注意事项, 由于没有基础, 所以学习进度非常的慢, 虽然有很多东西都难以理解, 但越是难以理解, 编程的魅力就越大, 哪怕是我只会让电脑输出一个hello, ...
- 戴维营第三天上课总结
今天轮到大茶给我们讲课, 给我们更加详细的讲解各个数据类型, 以及其他关键字, 并且给我们演示怎么用代码编写一个计算器, 还有怎么算闰年, 左移等等知识点, 其中的代码有 #include <s ...
- 戴维营教育最新项目实战开发视频出炉:Swift、XMPP、SpriteKi...
Swift语言开发实战高级教程:http://edu.51cto.com/course/course_id-2337.html 第一部Swift语言实战开发视频教程, 将Swift语法与iOS开发相结 ...
- 学生上课睡觉班主任怎么处理_学生上课睡觉,老师的管与不管,不是你看到的那么简单...
学生上课睡觉的原因,可以分为正常的和不正常的. 正常的,一种是在天气热的时候,人容易犯困,学生会有上课睡觉的:另一种是因为学习熬夜,导致的白天没精神而上课的时候控制不住自己睡觉. 不正常的,一种是熬夜 ...
- 带套属于安全行为吗_教师不管学生上课睡觉的行为,属于不负责任吗?建议收藏!...
这是当老师的失职 组织教学是课堂重中之重,课堂上看到学生睡觉,不管不问,听之任之,这是当老师的失职,失德行为,是误人子弟之举!一个学生睡觉你不管不问,接下来就有几个甚至更多,教学质量如何谈起?上课有学 ...
最新文章
- Pandas 基础 (3)—— 重新索引
- 哈佛最受学生欢迎的CS50课程来啦!「撕书教授」在家录了一套4K网课
- Android异步处理三:Handler+Looper+MessageQueue深入详解
- 浏览器中遮罩层镂空效果的多种实现方法
- 微信支付条码支付上线啦
- MongoDB 教程三: 高级查询
- python线程的学习
- 应用程序如何链接静态QT Plugin库
- https防止注入_【缺陷周话】第40期:JSON 注入
- java equals getclass_Java equals()方法 – 子类中equals的语义如何确定getClass和instanceof的使用...
- kkfileview预览html乱码,kkFileView(在线预览方案)
- 去除maven父依赖_如何在Maven中从父项目中排除依赖项?
- php使用正则表达式标记标题,PHP正则表达式以匹配HTML标记a之外的关键字
- 深度学习(十八)基于R-CNN的物体检测-CVPR 2014
- 软件测试——测试用例设计测试分类详解
- 502 proxy error解决方法_Homebrew安装、卸载、可能的报错及解决方案_Mac
- 利用Matlab实现线性动态电路的可视化研究
- Micrometer中文文档
- win10系统怎么合并电脑分区?
- 100725B Banal Tickets
热门文章
- Python—end=用法
- Dragon Balls
- 【Overload游戏引擎】源码分析之五:OvRendering函数库(三)
- 我的世界java版区块显示_我的世界手游区块显示指令分享:区块玩法操作详解[多图]...
- 模具厂干了将近三年,目前想学模具设计,好学吗
- 枚举类与注解的详细介绍
- C8051F与80C51系列单片机的初始化比较
- IPSEC的原理及配置步骤整理(一)
- android解析doc,docx,xls,xlsx文件
- 爬虫配套学习-前端学习笔记23-CSS相关