一、C语言
1编程规范
#include <stdio.h>
int main()
{
return 0;
}
词法符号:所有的代码都是由词法符号构成
1、关键字 -- 32个,所有的关键字都是小写
数据类型:int char short double float long signed unsigned (8个)
关于存储: register auto static extern const volatile (6个)
语句: if else for while do switch case break continue default
return goto (12个)
构造: struct union enum (3个)
求字节: sizeod (1个)
sizeof(int)
取别名: typedef
空类型: void
2、标识符 -- 由程序员按照命名规则自定义的词法符号
命名规则:
(1)只能由数字、字母以及下划线构成
(2)开头不能用数字
(3]不能和关键字重名
注意:大小写敏感!!!
尽量见名知意
3、标点符号
C语言代表语句结束的符号 ;
间隔 , 停顿 .
4、运算符
(1) 算术运算符 + - * / % ++ -
%取余:两边的操作数只能为整型
++:自增1
单独语句使用: 前++ 和 后++是一样的
如果不是在单独语句使用:
++a: 先自增。再使用
a++ : 先使用,再自增
(2) 关系运算符 > < == >= <= !=
判断等 ==
C语言中,真 是由 非0表示,假 是由 0 表示
(3)逻辑运算符
&&全为真 才为真
(表达式1) && (表达式2)
短路法则: 如果表达式1为假,则不必运算表达式2
|| 有一个为真 则为真
(表达式1) || (表达式2)
短路法则: 如果表达式1为真,则不必运算表达式2
!真为假,假为真
!(表达式)
(4)位运算符 & | ^ ~ << >> (运算二进制)
补码:正数的补码就是它的源码,负数的补码是源码取反+1
17=16+1 =0001 0001
-17= 1110 1110 + 1=1110 1111
&(位于) 全为1,才为1
13 & 17 =
13 -> 0000 1101
17 -> 0001 0001
0000 0001 = 1
|(位或) 有1则1
13 | 17 =
13 -> 0000 1101
17 -> 0001 0001
0001 1101 = 29
^(异或) 相同为0 不同为1
13 ^ 17 =
13 -> 0000 1101
17 -> 0001 0001
0001 1100 = 28
~(取反) 1为0 0为1
13 -> 0000 1101
~13 = 1111 0010
<< (左移) -- 符号位不变 ,高位向左移动,低位补0
13 -> 0000 1101
13 << 4 = 1101 0000
>>(右移)-- 符号位不变 ,低位向右移动,高位补符号位(每右移一位,相当于/2)
-17 = 1110 1110 + 1 = 1110 1111
-17 >> 3 = 1111 1101 (此时符号位为1,所以高位补1,如果为0则补0)
(5)赋值运算符 = += -= *=
(6) 指针运算符
& -- 取地址
* -- 取内容
(7)三目运算符
(表达式1) ? (表达式2) :(表达式3)
判断表达式1,如果为真则执行表达式2,如果为假则执行表达式3
5、数据类型
有符号 -- 分正负
无符号 -- 不分正负
unsigned
0000 0000 - 1111 1111 ==> 0 ~ 2^8 - 1
signed
非负数 0000 0000 ~ 0111 1111 ==> 0 ~ 127
负数 0000 0000 ~ 1111 1111 ==> -128 ~ -1
short 型 -- 短整型
2个字节 --16位
int 型 -- 整型
4个字节 32位
long型 -- 8个字节 32位
long long 型 -- 8个字节 64位
6、常量 -- 不能更改
1.整型常量
99
0xab
2.浮点型常量
小数型常量1.123
指数型常量 -0.00123
1.23*10^-3
-1.23e-3
3.字符常量 -- 单个字符,用' '括起来
4.字符串常量 -- 一串字符构成," "括起来,以'\0'为结尾
5.标识常量 -- 宏
#define MAX 200
注意: 标识常量名 用大写
7、变量
定义一个变量:
<存储类型><数据类型><变量名/标识符>;
(auto) int a:
1、存储类型 - 你要把这个数据存放到什么地方
auto static extern register
注意:
在程序运行的时候,变量占据一定的大小内存空间
变量存储空间的大小,由数据类型决定
变量的内存空间首地址,会成为变量的地址
2、数据类型 -- 变量要装什么类型的数据(小数、字符、整数)
变量的分类:C语言中 {}为一个模块
全局资量
定义位置:在所有的模块外
有效范围:从定义开始,整个程序结束
生命周期:从定义开始,整个程序结束
特点:如果没有初始化,默认为0
局部变量
定义位置:模块内部
有效范围:从定义开始,整个模块结束
生命用期:从定义开始,整个模块结束
特点: 如果没有初始化,默认为0