C基础
2023-08-19 09:51:13 2 举报
AI智能生成
C基础知识点
作者其他创作
大纲/内容
循环语句
for循环
定义一个循环变量
for(表达式1;表达式2;表达式3)
{
语句块;(循环体)
}
表达式1:给循环变量赋初始值
表达式2:循环条件也是结束循环的条件
表达式3:递增或递减
for(表达式1;表达式2;表达式3)
{
语句块;(循环体)
}
表达式1:给循环变量赋初始值
表达式2:循环条件也是结束循环的条件
表达式3:递增或递减
嵌套结构
定义两个循环变量
for(表达式1;表达式2;表达式3)
{
for(表达式4;表达式5;表达式6)
{
语句块;(循环体)
}
}
for(表达式1;表达式2;表达式3)
{
for(表达式4;表达式5;表达式6)
{
语句块;(循环体)
}
}
while循环
定义一个循环变量
while(判断条件)
{
语句块;
递增或递减;
}
while(判断条件)
{
语句块;
递增或递减;
}
do while
do
{
语句块;
}
while(判断条件)
{
语句块;
}
while(判断条件)
循环控制语句
break:直接跳出整个循环(程序)
continue:跳出循环,只跳出当前循环
死循环
while(1) ;
while(1)
{
}
{
}
while(1) ;
for(;;)
{
}
{
}
分支语句
if else
if(表达式)
{
语句块1;
}
else
{
语句块2;
}
{
语句块1;
}
else
{
语句块2;
}
switch case
switch(表达式或常量)
{
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
……
defeult:
语句块N;
break;
}
{
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
……
defeult:
语句块N;
break;
}
强制转换
int a = 5;
float b = (float)a / 2;
printf("%f\n",b);
float b = (float)a / 2;
printf("%f\n",b);
char a = 's';
printf("%f\n",(float)a);
printf("%f\n",(float)a);
输入输出
按照字符输入输出
getchar
int getchar(void)
功能:从终端获取(输入)一个字符
参数:无
返回值:一个int类型的数据,输入字符的ASCII值
功能:从终端获取(输入)一个字符
参数:无
返回值:一个int类型的数据,输入字符的ASCII值
putchar
int putchar(int c)
功能:向终端输出一个字符
参数:要输出字符的ASCII码值 可以是字符
返回值:要输出字符的ASCII码值
功能:向终端输出一个字符
参数:要输出字符的ASCII码值 可以是字符
返回值:要输出字符的ASCII码值
按照格式输入输出
printf
int printf(const char *format, ...);
功能:按照格式向终端输出
参数:format:字符串 按照字符串中的格式输出
返回值:输出字符的个数
功能:按照格式向终端输出
参数:format:字符串 按照字符串中的格式输出
返回值:输出字符的个数
scanf
int scanf(const char *format, ...);
功能:按照格式从终端输入内容
参数:format:字符串 按照字符串中的格式输入
返回值:正确输入的个数
功能:按照格式从终端输入内容
参数:format:字符串 按照字符串中的格式输入
返回值:正确输入的个数
回收垃圾字符
空格 可以回收一个或多个字符(空格 回车 tab键)
%*c 只能回收一个字符
%*c 只能回收一个字符
常量
概念:在程序运行当中不会发生变化的量
分类
字符型常量
字符串常量
整型常量
浮点型常量
指数常量
标识常量
Linux命令
打开关闭终端的方式
打开
鼠标打开
Ctrl Alt t
Ctrl Shift n
关闭
鼠标关闭
Ctrl d
输入 exit
终端的常用命令
查看
新建
复制
剪切
路径切换
常用快捷键
放大终端:Ctrl Shift +
缩小终端:Ctrl -
历史命令:上下键
清屏:Ctrl l
自动补全:Tab
vi编辑器
插入模式
命令行模式
复制:yy 复制光标所在行 Nyy 复制多行
粘贴:p
删除:dd Ndd 删除多行
反撤销:Ctrl r
光标回到行首:gg
光标回到末尾:G
行首:0
行尾:$
整理代码:gg=G
底行模式
保存:w
退出:q
保存并退出:wq
强制退出不保存:q!
分屏:vsp
查找:/str
替换:s/str/str2 将光标所在行第一个符合查找的内容进行替换
全部替换:%s/str/str2/g
全部替换:%s/str/str2/g
取消高亮:nohl
显示行号:set nu
取消行号:set nonu
gcc编译器
预处理
命令:gcc -E hello.c -o hello.i
删除文件中的注释 展开头文件 替换宏定义
删除文件中的注释 展开头文件 替换宏定义
编译
命令:gcc -S hello.i -o hello.s
检查语法错误 有错报错 没有错误生成汇编语言
检查语法错误 有错报错 没有错误生成汇编语言
汇编
命令:gcc -c hello.s -o hello.o
将汇编语言转化成二进制的文件
将汇编语言转化成二进制的文件
链接
命令:gcc hello.o -o hello
链接库文件,生成可执行文件
链接库文件,生成可执行文件
词法符号
关键字
存储类型:auto自动 static静态 extern引用外部 register寄存器
数据类型:char int long short float double signed有符号 unsigned无符号
构造类型:struct union enum
选择类型:if else switch case default
循环类型:for while goto do break continue
其它 :void typedef const sizeof return volatile
数据类型:char int long short float double signed有符号 unsigned无符号
构造类型:struct union enum
选择类型:if else switch case default
循环类型:for while goto do break continue
其它 :void typedef const sizeof return volatile
标识符
定义:用于标识变量 宏定义 函数名
命名规范:
由数字,字母,下划线组成
不能以数字开头
不能和关键字重名
见名知义
由数字,字母,下划线组成
不能以数字开头
不能和关键字重名
见名知义
运算符
算术运算符
+ - * / % ++ --
逻辑运算符
&& || !
位运算符
& | ~ ^ << >>
置1公式:a|(1<<n)
置0公式:a&(~(1<<n))
关系运算符
> < >= <= == !=
赋值运算符
= += -= *= /=
三目运算符
? :
格式:表达式1?表达式2:表达式3
格式:表达式1?表达式2:表达式3
运算符的优先级
单目运算:! ~ ++ --
算术运算:* / % + -
移位运算:<< >>
关系运算:> < >= <= == !=
位与运算:&
异或运算:^ |
逻辑运算:&& ||
条件运算:?:
赋值运算:= += -= *=....
口诀:单算移关与 异或逻条赋
单目运算,从右向左运算
算术运算:* / % + -
移位运算:<< >>
关系运算:> < >= <= == !=
位与运算:&
异或运算:^ |
逻辑运算:&& ||
条件运算:?:
赋值运算:= += -= *=....
口诀:单算移关与 异或逻条赋
单目运算,从右向左运算
分隔符
换行 空格 tab
标点符
, ; ( ) { } [ ]
进制之间的转换
二进制
转八进制
从右往左三位一组,三个二进制数可以表示一个八进制数
转十进制
101100——》0*20+0*21+1*22+1*23+0*24+1*25=4+8+32=44
转十六进制
从右往左四位一组,四个二进制数可以表示一个十六进制数
八进制
转二进制
一个八进制的数可以用3位二进制的数表示
以0开头
十进制
转二进制
短除法:对2进行倒取余
拆分发:
64——》26 + 21
64——》26 + 21
计算器演算
十六进制
转二进制
一个十六进制的数可以用4位二进制表示
0-9 a-f
以0x开头
非数值型的数据
ASCII值 在终端输入man ascii查看ASCII表,按q键退出
变量
概念:在程序运行当中会发生变化的量
定义格式:存储类型 数据类型 变量名
分类
全局变量:在函数外声明的变量,变量可以在全局使用
局部变量:在函数内声明的变量,只能在函数内部使用
全局变量和局部变量的区别?
局部变量 全局变量
定义位置 函数内部 函数外部
作用域 在声明函数内可以使用 全局可用
初始值(未赋值) 随机值 值为0
存储位置 栈区 全局区
生命周期 和定义函数共存亡 和整个程序共存亡
定义位置 函数内部 函数外部
作用域 在声明函数内可以使用 全局可用
初始值(未赋值) 随机值 值为0
存储位置 栈区 全局区
生命周期 和定义函数共存亡 和整个程序共存亡
数据类型
cahr 字符型 1个字节
int 整型 4个字节
short 短整型 2个字节
long 长整型 4个字节
float 单精度浮点型 4个字节
double 双精度浮点型 8个字节
int 整型 4个字节
short 短整型 2个字节
long 长整型 4个字节
float 单精度浮点型 4个字节
double 双精度浮点型 8个字节
自由主题
0 条评论
下一页