基础知识
符号
代码中用到的单词:
- 关键字:C语言语法已经用掉的单词,这些单词都已经有了固定作用
- 标识符:(1)程序员自己可以命名的单词不能是关键字 ;(2)由大小写字母和0~9数字符号以及下划线构成;(3)只能以字母或者下划线;(4)开头区分大小写;
- main函数名不是关键字,是操作系统要求的多个函数的函数名不能重名
-
无符号数不能是负数,优先级:无符号>有符号
int 转换成 unsigned int不需要强制转换
类型的级别从高到低依次是long double,double,float,unsigned long long,long long,unsigned long,long,unsigned int,int。
例外的情况下,当long和int的大小相同时,unsigned int 比 long的级别高。之所以short和char类型没有列出,是因为它们已经被升级到int或unsigned int。
-
c语言中没有string,要想在c语言中使用字符串,就要在头文件里定义#include<string.h>
-
规定数据输出方式的,
1.%d有符号10进制整数。
2.%i有符号10进制整数。
3.%o有符号8进制整数。
4.%u无符号10进制整数。
5.%x无符号的16进制数字,并以小写abcdef表示。
6.%X无符号的16进制数字,并以大写ABCDEF表示。
7.%F/%f浮点数。
8.%E/%e用科学表示格式的浮点数。
9.%g使用%f和%e表示中的总的位数表示最短的来表示浮点数G同g格式,但表示为指数。
10.%c单个字符。
11.%s字符串。
12.%%显示百分号本身。
int %d
float %f
double %lf
char %c %s
long int %ld
-
-
“china”字符串 %s 6
‘c’,’h’,’i’,’n’,’a’单个字符 %c char c[i]=('h','e','l','l','o'); char b[]="world";
-
-
void 和int 在于有没有返回值
-
sizeof(类型)-- 计算字节数
-
x%y:求x除以y的余数 %参与运算的对象必须是整型数 (int)a%(int)b
-
自增 i++ i=i+1; 先使用i,再++
++i i=i+1; 先++,再使用i
-
命令模式下:(1) yy:复制一行 (2) nyy:复制n行(光标选中,往下n行) (3)dd:删除(剪切)一行 (4)ndd:删除n行(光标选中,往下n行) (5)p:粘贴(6)u:撤销(7)Ctr+’r’:反撤销(8)ctrl+v,d删除选中
-
三大结构
-
与“&&”
或“||”
与和或连接的是两个表达式
-
单分支结构:
-
双分支结构:
-
多分支结构:
-
注意常量表达式
break不是必须的,按照题目要求,是否添加
default不是必须的,按照题目要求,是否添加
case指定范围
case low ... high:
-
for循环
for(表达式1;表达式2;表达式3){
语句;
}
表达式1:设置初始条件,只执行一次,可以0或者多个表达式赋初始值
表达式2:循环条件表达式
表达式3:作为循环的调整
-
外层循环走一步,内层循环走一圈
-
#include <math.h>
pow(数值,次方)n次方的函数
gcc 名字 -lm
C 库函数 - sqrt()-
描述
C 库函数 double sqrt(double x) 返回 x 的平方根,例如4的平方根是2
声明
double sqrt(double x)
参数
x -- 浮点值
返回值
该函数返回 x 的平方根
gcc编译时后面加上-lm
-
位运算 单位的换算:
-
& -- 位与
| -- 位或
~--取反
^ 异或
<< 左移
>> 右移
-
十进制负整型转换为二进制数: 取反加一 (1)第一步:先将该负整数对应的正整数转换为二进制数。 (2)第二步:对得到的二进制数取反。 (3)第三步:加1。
-
补码运算:
假设两个四位二进制数0111和0110为无符号数,我们来计算一下两者之间的减法:0111-0110=7-6=1。
由于计算机没有减法运算,我们可以先求减数相对应的补数,四位二进制数的模为2^4=16,那么6的补数为16-6=10,也就是说7-6=7+10=17,0111-0110=0111+1010=10001。
因为只有4位,所以最高位省略,得到0001=1,正好是原本的计算结果。
-
位操作符:
& 与运算 两个位都是1时,结果才为1,否则结果为0
| 或运算 两个位都是0时,结果才为0,否则结果为1 ^ 异或运算 两个位相同则为0,不同则为1 ~ 取反运算,1则变为0,0则变为1<< 左移:左移一位相当于*2
<<左移运算,向左进行移位操作,高位丢弃,低位补0
>> 右移
右移一位相当于/2
-
区分进制数 后缀区分 B:二进制 H:十六进制 O:八进制 D十进制 前缀区分 0x:十六进制 0:八进制 0b:二进制
-
判断奇偶性 n&1
-
交换两个数 a=a^b; b=b^a; a=a^b;
-
将第七位置0
以32位机为例
x= 1111 1111 1111 1111 1111 1111 1111 1111
-
取32bit无符号整数0x12345678的高16bit和低16bit,分别保存在两个16bit的无符号整数并显示出来。
-
数组,字符数组
-