2022.1.21日记

一个文件的全局变量定义成静态变量,就说明该变量只能被该文件调用。其他文件同名的函数不冲突;但限制其使用范围。

const修饰的是只读变量。可以自增自减。

int const *a=const int *a

Int *const a;a是一个指向int型的const指针,*a是可以改写的,但a不允许改写。所以这种情况必须将a=&i;即将a初始化。

int const * const a;

a是一个指向const int型的const指针,因此*a和a都不允许改写。

 extern 默认声明,扩展变量的使用范围。

struct:将多种数据结合起来的一个整体,其表现形式是一个结构体。

形成新的数据类型。

内存空间是分配给变量的,不是分配给数据类型的。

struct node

{............

};       这里的分号不能忘。

 

 C语言中的成员运算符:. 、→。

数组名不能作为组值。

 

不能将结构体变量作为一个整体输入输出。

printf(“%d%s%f”,stu1);scanf(“%d%s%f”,&stu1);错误!

只能一个个输入输出。

 

 固定长初始化

二维数组两个方括号,只能第一个可以空。

 

只有short类型时,则以占2个字节半字对齐。

有int类型时,则以占4个字节字对齐。

以上都没有时,则一个算一个。

Union共用(联合)体:当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体。

Big_endian大端字节序:数据的高字节位存储在低地址对应的存储单元;

Little_endian小端字节序:数据的低字节位存放在低地址对应的存储单元。

字符串是用字符数组处理的,没有字节序的概念。

Enum:枚举类型

enum的默认值:

Enum kids{nippy,slats,skippy,nina,liz};

enum的指定值:

Enum levels

{low=100,medium=500,high=2000};

enum的用法:作为switch的标签。

Typedef:是C语言的关键字,其作用是为一种数据类型定义一个新名字。

格式: typedef 数据类型 自定义数据类型

定义常量与命令(避免幻数)

#define MAX 100   宏名 宏体

#开头的都是预处理命令

预处理的过程叫宏展开也叫宏替换

结构简单、使用频率高的算法写成宏函数。

调试:

#if 0/1

.....

#endif

浮点数不能与零值比精度。

指针的零就是空。

当前循环:for、while、do while

C语言没有直到循环

a、b交换三种方式:

  1. a=a+b;b=a-b;a=a-b
  2. a=a^b;b=a^b;a=a^b
  3. t=a;a=b;b=t

在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。

如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。

goto使用场合:在多重嵌套时,从最内部调到最外部时使用。在同一函数内!

位运算:

&:按位与,对应位均为1时才为1,否则为0

|:按位或,对应位均为0时才为0,否则为1

^:按位异或:对应位相同时为0,不同时为1

~:按位取反:各位反转,即原来的1的位变成0,原来为0的位变成1(主要用于间接构造一个数,以增强程序的可移植性)

>>按位右移:是操作数的各位右移,移出的低位舍弃;高位:(1)对无符号数和有符号中的正数,补0;

(2)有符号数中的负数,取决于使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。例如,20>>2=5。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值