1.运算符
位运算符:~取反 ^异或
位运算符: | 或 &与
逻辑运算符: ||或 &&与
进制 分支 循环
2. 变量和常量:
变量: 可修改的值 数据类型+数据名
bool 1 char 1 short 2 int 4 long 4
//单精度 float 1 8(+127) 23
//双精度 double 1 11(+1023) 52
//整型变量 浮点值变量
常量:不让修改值 不等放在等号的左边
分为几种:
1. 数字常量(1,2,3,...)
2. 字符常量'c', 'm', '\n', ' ',(空格) '\'(这是错误的 它表示转义字符) 正确的写法应该是'\\'
3. 浮点值常量 12.3 15.5 0.123 1.23e-1 C语言支持科学计数法
4. 字符串常量 "123" "abc" "0" (字符和字符串的区别,只需要看头顶是单引号还是双引号)
5. 宏常量(符号常量) #define PI 3.14(宏定义后面没有分号) 用完宏之后要屏蔽#undef
// 因为宏只是做一个简单的替换 所以不安全(没有类型安全检查)
6. 常变量 const+定义变量 const修饰的变量值不让修改(类似有常量的属性)
//常量定义的时候一定需要加上初始值,如果不给,以后也没机会给了,所以报错
3.标识符起名规则:
1.由数字,字母,下划线(新标准有添加,C++添加了unicode)
2. 不能由数字开头 其他都可以开头 int 2=10; error
3. 不让使用系统保留的标识符 int float=2; int return=10 ; 都是不让使用的 有32个不让用的
4. 区分大小写 int a=10; int A=20; 字母不让中间加逗号和空格
// 不要起这种名字: iI1 kK mM cC zZ pP
4.数组 :处理批量数据(数组是一堆类型相同的变量集合)
一般表现形式:数据类型+数组名+[长度]
数组如何去访问? 通过下标去访问
中括号中间的值什么时候代表长度什么时候代表下标? 当数组定义的时候中括号中间的值代表着长度,必须是常量 //C99标准可以不是常量
当数组使用时候(非定义的时候)中括号中间的值代表着下标,此处的下标可以是常量也可以是变量
int arr[10]={1,2,3,4,5,6,7,8,9,10}; //此时中括号中间的值代表长度
arr[10]=10; //此时中括号中间的值代表下标
数组越界(很危险):访问到不属于自己的内存,会发生数据越界,不安全。
vs编译器给变量的两端各放置一个地雷(地雷占四个字节)不强调地雷的类型他只占四个字节
在C语言中,%p是打印地址
数组名还可以表示数组首元素的地址
数组名只有两种情况下表示整个数组:
1,在定义数组的同一个函数内,sizeof(arr), 这里的arr代表整个数组
2,在定义数组的同一个函数内,&arr+1,这里的arr代表整个数组
怎么求数组长度?
sizeof(arr)/sizeof(arr[0])==len
数组整个的字节/第一个格子的字节==有多少个格子
//数组名作为函数的参数传递的时候,会发生退化,退化成指针(只传递一个信息:数组只传递地址,而没有传递长度)所以一般来说数组作为函数参数调用时,数组名和数组长度缺一不可