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