赞
踩
基础C语言----基本知识
如何在虚拟机上写代码
1、打开终端(Ctrl+Alt+t),mkdir day01 创建目录,cd 目录名。
2、vim file.c,进入vim文本编辑器,输入i,进入代码编辑模式。
3、编写代码,Ctrl+x执行代码,Ctrl+z保存退出。
4、vimtutor
第一个C语言程序:
#include 功能是把头文件导入到当前代码 ( stdio startand in out head )
#include
main 是C代码的执行入口,有且只能有一个。
int main()
{
printf和scanf是用来调试代码的,它模拟从界面获取数据、显示数据到界面
\n是一种转义字符,很多不能正常显示的文件都会有一个替换的转义字符
\r (回到行首)
\b (退格)
\\ ( \ )
%% (%)
\t (制表符)
C语言中代码以分号为结束标志,; 有特殊含义。
printf(“hello world!\n”);
// 把函数的执行结果返回给调用者,结束函数的执行。
return 0;
// C语言中{ }对代码进行划分管理区域
编程基础知识
编辑器:类型记事本一样的用来编写代码的工具。
编译器:负责把代码文件翻译成可执行程序的软件。
gcc 是GNU社区为编译Linux内核开发的一款编译器。
gcc code.c -> a.out
编译器是如何把C代码翻译成可执行程序的:
1、预处理
把代码中以#开头的指令翻译成标准的C代码,生成预处理文件。
gcc -E code.c -o code.i
2、汇编
把预处理文件翻译成汇编文件
gcc -S code.i -> code.s
3、编译
把汇编文件翻译成目标文件(二进制)
gcc -c code.s -> code.o
4、链接
把若干个目标文件合并成一个可执行文件
gcc a.o b.o c.o -> a.out
C语言的数据:
为什么要把数据进行分类:
1、现实社会中的数据是自带类别属性。
2、对数据进行分类型可以节约存储空间、提高运行效率。
C语言中数据分类两人大类自建(程序自己设计的,如:结构、联合、类)和内建(C语言自带)。
整型:
char、short、int、long、long long
有符号 signed : 它存储数据的二进制位中最高位用来表示正负。
无符号 unsigned :它的所有的二进制位都用来存储数据,只能表示正数。
浮点型:
float 单精度
double 双精度
long double 高精度
浮点型数据采用的是科学计数,可以表示较大范围的数据,但是精确度有限。
浮点型的数据由于格式特殊,所以运算的效率不高,编程时优先选择整型。
布尔类型:C语言中没有真正的布尔类型,若使用必须添加头文件stdbool.h
bool true false
字符型:字符其实就是符号或图案,在计算机中是以整数形式存储的,当需要显示时会根据ASCII表中的对应关系,显示相应的符号。
‘\0’ = 0
‘0’ = 48
‘A’ = 65
‘a’ = 97
变量:
存储数据的容器,需要先定义后使用。
定义:类型 变量名;
注意:刚定义的变量默认值是不确定的,为了安全一定要初始化(养成良好的习惯)。
变量的取名规则(标识符的取名规则):
1、只能由字母、数字、下划线组成。
2、不能以数字开头。
3、不能与关键字重名(32个关键字)。
4、尽量不要超过30个字符。
5、见名知义(功能+类型+作用域+…)。
C语言中通过使用占位符的方式来告诉printf/scanf变量的类型。
变量的输出:printf 类型 变量名
变量的输入:scanf 类型 变量的地址=&变量名
sizeof 计算变量的字节数。
练习:定义各类型的变量,使用scanf接收,使用printf显示,使用sizeof计算变量的字节数。
常量:
字面值常量(代码中能直接使用的数量:100,1000),不可被修改,存储在一块只有只读权限的内存中(代码段)。
设置字面值常量的类型:
默认是int(10)类型,或double(3.14)类型。
10u unsigned short
10U unsigned int
10u8 unsigned char
3.14f float
3.14l long double
运算符:
算术运算符:+ - * / %
/ % 除数不能为零,如果除数为零程序会提前死亡。
关系运算符:> < >= <= == !=
运算的结果是逻辑:true=1 false=0
==使用时常量放在左边,变量放右边。
num == 10;
10 == num; 防止出错
10 < num < 100; 数学中[11,99],C语言中永远为真。
自变运算符:++/–
可以让变量的值自加1或自减1(只有变量才能使用)。
前自变:++/–num,立即有效。
后自变:num++/–,下一行代码才会生效。
一行代码中不要多次使用自变运算符。
逻辑运算符:&& || !
在运算之前会把运算对象转换成逻辑值:零值转换成假,非零值转换成真,然后再对逻辑值进行运算,得到的结果也是逻辑值。
A && B 一假即假
A || B 一真即真
!A 对A的值求反
!比&&、||运算级别要高(单目运算符的级别都比较高)。先后顺序 (not and or)
&&、|| 具有短路特性,当左边的值已经能确定表达式的结果,右边的值则不再计算(注意思维误区,还可以借此形成精简的分支结构)。
int num = 0;
num>0 && num–;
赋值运算符及扩展:= += -= *= /= …
num += 10 <=> num = num + 10;
三目运算符:[1] ? [2] : [3];
当1的值为真时执行2,否则执行3,类似if语句。
不能使用流程控制语句,因为毕竟是运算符,必须要有运算结果。
字节数运算符:sizeof
1、sizeof不是函数而是运算符,而且是32个关键字之一。
2、只是推算表达的结果是什么类型、占多少个字节(取最大的),而不计算表达式。
位运算符:& | ~ ^ << >>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。