02_0100 2.1变量名 2.2数据类型及长度
2.1变量名/函数名
1.字母(含_)与数字组成的序列
2.不建议把_作为变量或者函数开头(可能会和编译器冲突,以微软的_strlwr函数举例)
2.2数据类型及长度
signed与unsigned
char, short, int, long有signed与unsigned
float与double没有signed与unsigned
讲解数的表示
计算机中的数都是用补码表示
如何算补码:
正数
正整数的补码是其二进制表示,与原码相同.
负数
求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=16
02_0200 2.3常量
2.3常量
2.3.1 数字常量
数据类型 VS表示方法 LINUX表示方法 宏定义
long L L LONG_MAX
unsigned long UL UL ULONG_MAX
long long i64/LL LL LLONG_MAX
unsigned long long ui64/ULL ULL ULLONG_MAX
float f f FLT_MIN
double 无 无 DBL_MAX
2.3.2 八进制/十六进制
8进制数用0开始 linux下的权限多用这种方式表述
16进制用0x开始
2.3.3 ASCII码及字符转义
1.什么是ASCII码
答:简单的说,就是一张表,用于表示一个数字和一个字符的一一对应关系
2.3.4 C语言转义字符
2.3.5 常量表达式
#define MAXLINE 1000
char line[MAXLINE + 1];
2.3.6 字符串常量
"hello,world"
"hello," " world"
"hello"\
" world"
重点,字符串常量不可以修改!!!
2.3.7 enum 常量
1.enum占用几个字节?
2.enum会检查重复吗? #define会检查吗?
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=17
02_0300 2.4声明 2.5算术运算符 2.6关系运算符与逻辑运算符
2.4声明
1.先声明再赋值/声明时赋值
2.如果不是自动变量,则只进行一次初始化.默认情况下,外部变量与静态变量被初始化为0
2.4.1 全局/静态变量的初始化
1.如果初始化为0,编译后的大小不会增加,证明初始化为0,编译器采用了简单的方法标识为初始化为0
2.如果初始化为其他值,编译后的大小会增加,初始化的内容直接放在exe里面
3.不使用的静态变量可能会被编译器优化掉,具体看编译器的实现
总结:C语言中,全局变量/静态变量在程序执行前已经初始化
2.4.2 const限定修饰
2.5算术运算符
+,-,*,/,%
2.6关系运算符与逻辑运算符
> >= < <= == !=
逻辑非运算符!的作用是将非0操作数转换为0,将操作数0转换为1
int getline(char s[], int len)
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=18
02_0400 2.7类型转换
2.7类型转换
2.7.1 数字运算时自动转换
1.VS中,int 向下转到char/short等并不会出编译警告
GCC干脆就不给警告?
2.有符号与无符号比较时的警告
2.7.2有符号和无符号比较时的自动转换
我的理解,自动转换为无符号数
2.7.2 赋值自动转换
2.7.3 函数传参自动转换
2.7.4 强制转换
2.7.5 转换表
char short int long long long float double
char
short
int
long
long long
float
double
2.7.5字符串转换
1.字符串转数字
2.字符转大小写
3.判断是不是数字
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=19
02_0500 2.8自增运算符与自减运算符
2.8自增运算符与自减运算符
2.7.1 自增自减的本质论(从汇编语言看起)
2.7.2 练习squeeze和any函数
如何优化?
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=20
02_0600 2.9按位运算符
2.9按位运算符
2.9.1 C语言提供了6种操作运算符供整数操作
1.& | ^ << >> ~
2.最简单的加密算法
真值表
& 0 1
0 0 0
1 0 1
| 0 1
0 0 1
1 1 1
^ 0 1
0 0 1
1 1 0
~ 0 1
1 0
2.9.2 算术移位与逻辑移位
2.9.3 与机器字长无关的写法
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=21
02_0700 2.10 赋值运算符与表达式 2.11 条件表达式 2.12 运算符优先级与求值次序
2.10 赋值运算符与表达式
expr1 op= expr2 等价于 expr1 = (expr1) op (expr2)
2.11 条件表达式
(n > 0) ? f : n 是浮点类型,与n是否大于0无关
2.12 运算符优先级与求值次序
x = f() + g(); 没有规定f和g的运行顺序
printf("%d %d\n", ++n, power(2, n)); 没有规定先计算++n还是power
a[ i ] = i++ //让人不愉快的代码书写
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=22
标签:初始化,com,long,C语言,运算符,2.3,2.7,星仔学 From: https://www.cnblogs.com/xingzaicpp/p/16663319.html