|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 yishfd 于 2016-12-1 02:05 编辑
开贴
linux下常用的命令
1、vi 文件名.c 创建一个.c扩展的文件
2、mkdir 目录名 创建一个新目录
3、rm 删除命令
例二:将 Finished 子目录及子目录中所有档案删除。
rm -r Finished
4、cd .. 后退一个文件夹
5、gcc *.c -o * *号表示文件名
6、./文件名 运行
【s1e3】
printf的双引号中放一些文本,我们把文本称为字符串(由可见字符(星号、@、空格)和转义字符组成)。
\n 是转义字符,表示换行。
\n\,第二个反斜线的意思,忽略第二个\的存在,并且把下一行当作是上一行的延续。适用场景:代码超级长,一行字符串超级长,要分两行来写,表示上下两行是一起的
\也可以用在语句中,语句中不能有空格和TAB的缩进。如果有缩进,C语言编译的时候也会把TAB的缩进。
【s1e4】
变量的意义确定目标并提供存放的空间。
变量名的规则:只能用英文字母,数字或者下划线组成;第一个字母必须是字母或下划线开头;变量名区分大小写。
注意:不能使用关键字命名。
什么是关键字:在C语言中有特殊的含义。32个》37(C99)》44(C11)》
数据类型:
char 字符型,占用一个字节
int 整型,通常反映了所用机器中整数的最自然长度
float 单精度浮点型(表示的数据小)
double 双精度浮点型(表示的数据大)
%.2f 中 .2 表示单精度浮点型的数,精确到小数点后2位
%11.9 中 .9表示精确到小数点后9位,11表示数值的宽度 一共有11位(包括小数点)
编译完立刻执行 gcc *.c -o * && ./* (*星号表示文件名)
【s1e5】 常量和宏定义
标识符,就是C语言中所有的名字
整型常量:521,1314
实型常量:3.14,5.12
字符常量:
(普通字符:'L','o','v','e'
(转义字符:'\n','\t','\b’
字符串常量:"FishC"
符号常量:使用之前必须先定义(格式 #define)
【s1e6】 数据类型
1、基本类型:
(1)整数类型》short int ; int ; long int ; long long int
(2)浮点数类型》float ; double ; long double
(3)字符类型》char
(4)布尔类型》_Bool
(5)枚举类型》enum
2、指针类型:
3、构造类型:
(1)数组类型》
(2)结构类型》
(3)联合类型》
4、空类型:
signed 和 unsigned
signed 表示还符号位的,可以存放负数
unsigned 不带符号位的,只能存放0和正数
默认所有的整型都是带符号位的
printf 打印带符号的 %d,打印无符号的 %u
sizeof 运算符用于获得数据类型或表达式的长度 【sizeof()是一个运算符,不是一个函数】
- sizeof(object); //sizeof(对象)
- sizeof(type_name); //sizeof(类型)
- sizeof object; //sizeof 对象;
pow函数 用于计算某个数的某次幂的值 pow(x,y)=x的y字幂等于多少
gcc -lm 文件名.c -o 文件名 && ./文件名
【s1e7】 取值范围
二进制,十进制,十六进制
位 bit
字节 Byte
符号位
int 默认是带符号位的
存放signed类型的存储单元中,左边第一位表示符号位。
如果该位为0,表示该整数是一个正数;如果该位为1,表示该整数是一个负数。
一个32位的整型变量,除去左边第一位符号位,剩下表示值的只有
31个比特位。
计算机是如何存放负数的:是用补码的形式来存放整数的值
补码:
正数的补码是该数的二进制形式
负数的补码需要通过以下几步获得:
1、先取得该数的绝对值的二进制形式
2、再将第1步的值按位取反
3、最后将第2步的值加1
最大值和最小值
正数 需要第一个符号位为0,表示正数
负数 需要第一个符号位为1,表示负数
遇到了难题,到了进制转换就懵逼了。。 还有数据类型,一个整型就懵逼了。。。啊啊啊,崩溃了。 还要不要继续下去???
【s1e8】 字符和字符串
字符类型是特殊的整型 因此它也有取值范围
但char类型没有规定默认是signed 还是unsigned,具体是由编译系统决定的。
字符串
C语言没有为字符串设计单独的类型。
char 变量名[索引号] = {'字符1','字符2','字符3',……,'\0'}
变量名,要符合命名规则
索引号,字符数量+1(最后一个'\0'表示字符串的结束),也可省略不写
直接使用字符串常量
char 变量名[索引号] = {"字符串常量"},省去'\0',
char 变量名[索引号] = "字符串常量",省去花括号
【s1e9】 算术运算符
目,运算符 操作数
单目还是双目,看起作用的操作数是几个 (唯一的一个三目运算符)
表达式:用运算符和括号将操作数连接起来的式子
有:加(+)、减(-)、乘(*)、除(/)、余(%)、正号(+)、负号(-);前5个是双目,后两个是单目
类型转换:
一个运算符的操作数不同时,编译器会先将他们转换为某个共同的数据类型,才能进行运算。通常情况下是将占用坑位小的转换成占用坑位大的操作数类型,然后再进行运算。这样可以确保运算的精确度。
C语言也允许强制转换操作数类型,在操作数前面用小括号将目标数据类型括起来。例如: 1 + (int)2.0
思考:整型和整型的运算,结果是整型(如果有小数,强制丢弃小数点后的部分)
整型和浮点型运算,结果是浮点型
【s1e10】 关系运算符和逻辑运算符
五种关系运算符 》关系表达式
三种逻辑运算符 》逻辑表达式:用逻辑运算符将两边的变量、数据或表达式连接起来,称之为逻辑表达式
逻辑非(!),高;逻辑与(&&),中;逻辑或(||),低
逻辑非,取反;逻辑与,两个操作数,同为真,结果为真,其中一个为假,结果为假;两个操作数,同为假,结果为假,其中一个为真,结果为真。
短路求值(最小化求值),逻辑运算符的求值策略。
【s1e11】 if语句
cp 文件1.c 文件2.c 把文件1复制为文件2
IF语句一、
if (表达式)
{
…… //表达式为真,执行此语句或多条语句(语句块)。
}
…… //表达式为假,执行此语句
白话翻译:”如果怎样,就怎么样“
用大括号把多条语句包含起来,就构成了一个语句块,是一个整体。
IF语句二、
if (表达式)
{
…… // 真,执行语句、程序块
}
else
{
…… // 真,执行语句、程序块
}
…… // 其它语句
白话翻译:”如果怎么就怎么,否则还能怎样“
IF语句三、
if (表达式1)
{
…… // 真,执行语句、程序块
}
else if (表达式2)
{
…… // 真,执行语句、程序块
}
else if (表达式3)
{
…… // 真,执行语句、程序块
}
…… else if (表达式N){……}
else
{
…… // 假执行语句、程序块
}
【s1e12】 switch语句和分支嵌套
…… //其它语句
switcch (表达式)
{
case 常量表达式1:语句或程序块1; break;
case 常量表达式2:语句或程序块2; break;
……
case 常量表达式3:语句或程序块n; break;
default:语句或程序块n+1; break;
}
…… //其它语句
解释:每个case就像标签,每个标签后,都要有break,负责执行后跳转出来。
分支结构的嵌套
if (表达式)
if (表达式) |
…… | 内嵌if
else |
…… |
else
if (表达式) |
…… | 内嵌if
else |
…… |
复习scanf函数的用法,“”引号中的参数
函数getchar的用法
bug1:悬挂else
bug2:等于号带来的问题
等于号写成了赋值号
|
|