2020春-C高级--第五周--内容大纲

结构和结构变量的定义

  • 关键字struct和它后面的结构名一起组成了一个新的数据类型名。结构的定义以分号结束,这是因为C语言中把结构的定义看作一条语句。
  • 在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型。
  • 关键字struct和结构名student必须联合使用,因为它们合起来表示一个数据类型名。
  • 课本中的“一个结构类型变量所占的内存空间是其各个成员所占内存空间之和”,这个是不一定的,因为在分配存储时需要考虑到边界对齐存储的情况,例如下图,字符数组name虽然只有5个元素,但是因为边界对齐存储,name实际占用了8个字节,加上两个int的8个字节,总共是16个:

结构成员操作符.

  • 结构变量可使用.运算符引用各变量的结构成员
  • 只有相同结构类型的变量之间才可以直接赋值
  • 结构变量的名字并不是结构结构变量的地址,必须使用&运算符
  • 成员操作符.的优先级比&运算符的优先级高

结构数组

  • 结构数组是结构和数组的结合体,与普通数组不同之处在于每个数组元素都是一个结构类型的数据,包括多个成员项。
  • 选择排序法

结构指针

  • 结构指针就是指向结构类型变量的指针。
  • 结构指针的值实际上是结构变量的首地址,即第一个成员的地址。
  • 结构指针访问结构成员的两种方式:
    • 用*p访问结构成员
    • 用指向运算符->访问指针指向的结构成员
  • 使用结构指针作为函数参数只要传递一个地址值,提高参数传递的效率。

原文地址:https://www.cnblogs.com/c-programing-language/p/12567289.html

时间: 2024-11-13 08:52:56

2020春-C高级--第五周--内容大纲的相关文章

第五周可执行代码 以及 Canvas 制作个人PSP分类饼图

第五周可执行代码已经上传github,地址是https://github.com/yanyige/CourseWork/tree/master/Week4.以及效果在http://yanyige.github.io/Week4/中展示. 这里使用Canvas绘图制作PSP饼图,整个实现方法参考JavaScript高级程序设计第三版 P449 页的内容. 这里是实现结果: 代码地址是https://github.com/yanyige/CourseWork/tree/master/Week5,效果

2018-2019-20172329 《Java软件结构与数据结构》第五周学习总结

2018-2019-20172329 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 <Java软件结构与数据结构>第九章-排序与查找 一.查找 1.查找概念简述: (1)查找3是这样一个过程,即在某个项目组中寻找某一指定目标元素,或者确定该组中并不存在该目标元素.对其进行查找的项目组有时也称为查找组. (2)查找方式的分类:线性查找,二分查找. (3)查找所要完成的目标:尽可能高效的完成查找,从算法分析的角度而言,我们希望最小化比较操作的次数,通常,查找池里项目数

2014025689 《嵌入式系统程序设计》第五周学习总结

<嵌入式系统程序设计>第五周学习总结 一.6.5(标准I/O编程)主要涉及的函数及知识点 标准的I/O的三种缓冲存储:全缓冲.行缓冲.不带缓冲. 1. 全缓存:当填满标准I/O缓存后才进行实际的I/O操作 2. 行缓存:当输入或输出中遇到行结束符时,标准I/O库执行I/O操作 3. 不带缓存:标准I/O库不对字符进行缓冲 打开文件的三个标准函数:  fopen().fdopen()和 freopen(). -fopen()可以指定打开文件的路径和模式 函数原型:FILE * fopen(con

20145307《信息安全系统设计基础》第五周学习总结PT2

20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据

20145326蔡馨熠《信息安全系统设计》第五周学习总结

教材学习内容总结 书上有的内容我就不重复赘述了,只需要将部分重要的知识点归纳总结一下. 1.使用GDB的堆栈跟踪功能(GDB中有很多针对调用堆栈的命令,都需要一个目标栈帧,例如打印局部变量值的命令) 在栈帧之间切换 frame args 将当前栈帧设置为args(编号或Address)指定的栈帧,并打印该栈帧的简要信息. up n 向上回退n个栈帧(更外层),n默认为1. down n 向下前进n个栈帧(更内层),n默认为1. 打印栈帧信息(不移动栈帧) frame 打印当前栈帧的简要信息. i

马哥linux作业第五周&#39;

1.显示当前系统上root.fedora或user1用户的默认shell: egrep "^(root|fedora|user1)\>" /etc/passwd |cut -d: -f1,7 root|fedora|user1表示三者符合其一的选择条件 ()使其归组 ^表示以后面归组的条件开头 \>表示以空字符截断此前的条件字符,即后跟其它字符的单词将不匹配 2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello():

信息安全设计基础第五周学习总结

信息安全系统设计基础第五周学习总结 [学习时间:10小时] [学习内容:第三章:程序的机器表示] 一.教材内容 1.X86 寻址方式的变化: 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全: 2 8086的分段模式: 3 IA32的带保护模式的平坦模式 2.机器编程的两种抽象: 1)指令集体系结构(Instruction set architecture,ISA)——定义指令格式以及每条指令执行之后对状态的影响.大多数ISA将程序行为描述成按顺序执行的: 2)虚拟地址 3.一些处理

20155335俞昆《Java程序设计》第五周总结

#  20155335    <Java程序设计>第五周学习总结 ##  教材学习内容总结 ##  教材学习中的问题和解决过程 对于异常处理,程序中总有意想不到的状况所引发的的错误,Java中的错误也以对象方式呈现为Java.lang.Throwable的各种子类实例. 首先,Try和catch可用来捕捉程序中的错误,如果出现Java.util.InputMismatchExpection错误信息,表示不符合Scaneer对象预期,因为下一个字符串本身要代表数字,由Scaneer对象预期:使用

20145317《信息安全系统设计基础》第五周学习总结2

20145317<信息安全系统设计基础>第五周学习总结2 教材学习内容总结 X86 寻址方式经历三代: DOS时代的平坦模式,不区分用户空间和内核空间,很不安全. 8060的分段模式 IA32的带保护模式的平坦模式 程序编程 1.代码含义 gcc -01 -o p p1.c -01 表示使用第一级优化.优化的级别与编译时间和最终产生代码的形式都有关系,一般认为第二级优化-02 是较好的选择. -o 表示将p1.c编译后的可执行文件命名为p 2.机器级编程的两种抽象 指令集结构ISA 是机器级程