浙大mooc翁凯 C语言笔记

C语言学习笔记

结构体(struct)

结构体的嵌套

如果有,就可以有、、、
如果有变量定义:

注意:、是两种等价的形式。写法错误,因为p1不是指针。

自定义数据类型

C语言提供 typedef 的功能来声明一个已有的数据类型的新名字
使得成为类型的别名

联合(union)

上面代码的含义是anelt的成员是一个或是一个,union类型的大小由成员中最大值决定

x86cpu为小端机,内存存放数时 低位在前 ,故输出了D2040000,说明chi.ch与chi.i公用同一处内存空间。

全局变量

全局变量初始化:
1.没有做初始化的全局变量会得到0值,指针会得到NULL
2.只能用编译时刻已知的值来初始化全局变量
3.它的初始化在main函数之前

全局变量的赋值不能是变量

正确的做法是

还需要注意,如果函数内部存在与全局变量同名的变量,全局变量会被隐藏

静态本地变量

  • 静态本地变量实际上是特殊的全局变量,位于相同的内存区域
  • 静态本地变量具有全局的生存性,函数内的局部作用域

返回指针的函数需要注意:

  • 返回本地变量的地址是危险的
  • 返回全局变量或静态本地变量的地址是安全的
  • 安全的做法是返回传入的指针

宏定义(编译预处理指令)

  • #开头的是编译预处理指令
  • #define用来定义一个宏
    • #define
    • C语言的编译器开始编译之前,编译预处理软件会将程序中的名字换成值(完全的文本替换)
    • 值可以为任何东西(包括命令)

预定义的宏

  • 源代码文件的行 (整数)
  • 文件名称(字符串)
  • 编译文件时的日期(字符串)
  • 编译时的时间(字符串)
  • 返回程序名(字符串)
    使用宏注意加上括

多个源代码文件

有两个文件分别为

多个C文件的调试

法一:

  1. 将多个C项目文件放入同一个新建文件夹project。我们以文件和为例子

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月16日
下一篇 2021年7月17日

相关推荐