C语言的基本结构:
#include <stdio.h> //预处理指令,在编译时要处理的代码,在编译时会从库指定的路径中寻找
//stdio.h文件,将该文件中的代码复制粘贴到此处
int main(void) //main是程序的入口函数,void表示没有参数,int表示返回值类型
{
//功能实现部分
return 0; //结束当前函数,并向外返回一个值,人为规定,0状态返回表示程序正常结束,非0为异常结束
}
进制转换:
进制数:
二进制:0-1
二进制转十进制:
0b1100(二进制):0 * 2^0 + 0 * 2^1 + 1 * 2^2 + 1 * 2^3 = 12(十进制数)
十进制转二进制:
12(十进制数) = 利用短除法,除权位取余数,最后将余数倒着写
八进制:0-7
与二进制的转换:从最低位开始使用三位二进制数表示一位八进制数
八进制转二进制:
0175(八进制数)= 1111101(二进制)
二进制转八进制:
11101101(二进制) = 011 101 101 = 0355(八进制)
八进制转十进制:
0175(八进制数) = 5 * 8^0 + 7 * 8^1 + 1 * 8^2 = 125(十进制)
十进制转八进制:
236(十进制数) = 利用短除法,除权位取余数,最后将余数倒着写
十六进制:0-9 A-F
与二进制的转换:从最低位开始使用四位二进制数表示一位八进制数
十六进制转二进制:
0x3EA(十六进制) = 0011 1110 1010(二进制)
二进制转十六进制:
11000011110100101(二进制) = 0001 1000 0111 1010 0101 = 0x187A5
换算单位:
1B = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
定义类型:
char a = 10;
变量:在程序运行的过程中其值可以改变量值,先定义后使用
语法:数据类型 变量名称 = 值;
数据类型:规定变量的位宽,确定内存中可以存放的值
C标准中只定义了数据类型,没有定义类型的位宽,类型占用的位宽,取决于平台
在当前64位机下:
整数类型:
占用内存 存放的数值范围
char 1B -128 - 127
short 2B -2^15 - +2^15-1
int 4B -2^31 - +2^31-1
long 8B -2^63 - +2^63-1
long long 8B 用于兼容下一代C版本标准
浮点类型:
float 4B 小数点后6位
double 4B 小数点后12位
变量名称:
1.只能以字母或_开头
2.不能是C语言的保留字
3.可以由多个单词组合,但中间不能有空格
4.C语言区分大小写
5.不能重复定义
值:由变量的数据类型决定
数据的存储:
整数的存储:
在内存中,保存一个整数,保存的是该数的补码
char a = 10 00001010
char a = -10 10001010 11110101 11110110
正整数:原码 = 补码
负整数:原码-》反码-》补码
反码 = 取反原码(符号位除外)
补码 = 反码 + 1
小数的存储:
将数值划分为整数部分和小数部分,整数按照整数部分的存储,小数按照乘2取整
字符存储:
ascii码表:美国标准信息交换码表
gbk:中文
gb2312:简体中文
UTF-8:万国码表
输入输出:
#include <stdio.h>
输出:
printf(“要输出的内容”);
转义字符:
\n:换行
\t:tab键
\:
": "
格式化字符:
%d int,short
%c char
%f float
%lf double
%ld long
%lld long long
%s char *或 char []
%p void *
%x 无符号的十六进制数
输入:
scanf(“格式化字符”,内存地址);
注意:
1.在格式化字符处不要加\n
2.多个输入间用什么符号分割在输入时就需要用什么符号分割数据
3.变量必须获取内存地址进行传递,&变量:取得变量的内存地址
注释:编译器会跳过注释的内容
//单行注释
/*
多行注释
*/
运算符:
1、算术运算符:+ - * / %(取模)
两个整数相除,结果一定为整数
%(取模):得到两个数相除的余数
2、赋值运算符:= += -= = / %= ++ –
赋值运算,先执行=符号右边的公式,将结果赋值给左边的变量,修改其内存中的数据
只有赋值运算,才能更改一个变量的值
x += y; ===>> x = x + y
++运算,若是单独为一行代码,则不用考虑在变量之前还是在变量之后
++参与别的运算:
++在变量之前:先自增,再取值做运算
++在变量之后:先取值做运算,在自增
3、比较运算符:> < == != >= <=
比较运算的结果,要么为0(假),要么为1(真)
4、逻辑运算符:&&(and) ||(or) !(not)
条件1 && 条件2:只有当多个条件都为真时,结果为真
短路运算:
若条件1为假,则逻辑运算结果为条件1的结果
条件1 || 条件2:只要有一个条件为真,则结果为真
短路运算:
若条件1为假,则逻辑运算的结果为条件2的结果
!(条件):得到条件相反结果
5、三目运算(三元表达式):? :
语法:条件表达式 ? 条件表达式成立时运算的结果 : 条件表达式不成立时运算的结果 ;
int c;
c = a > b ? a+b : b-a;
c = a > b ? (a > d ? a : d) : (a > e ? a : e);