整理了一下C(谭浩强版)的笔记,笔记中只有博主自己觉得重要和已经忘记的内容~
-
机器语言(machine language):机器指令(machine instruction计算机能够直接识别和接受的二进制代码)的集合。
-
对于过程化程序来说,程序=算法+数据结构。
-
算法的特性:1.有穷性 2.确定性 3.有零个或多个输入 4.由一个或多个输出 5.有效性
-
C标准并没有具体规定各种类型数据所占用存储单元的长度,只是要求long的数据长度不短于int,short不长于int。它是由编译系统自行决定的(Turbo C中int、short16位,而long32位;VC++中short16位,而int、long32位)。通常做法:short16位,long32位,int由编译系统决定。
-
int(32位)取值范围:-231 ~(231 -1);unsigned int取值范围:0 ~(232 -1)
-
自增:变量在运算符的前面,就是先使用变量;变量在运算符的后面,就是后使用变量
i++;//先使用i,再把i的值加一。 ++i;//先把i的值加一,再使用i
-
算术运算符自左至右(左结合性),赋值运算符自右向左(右结合性)。
-
‘A’:65,‘a’:97。字符数据以ASCII码存储在内存中,形式与整数的存储形式相同,所以字符型数据和其他算术型数据可以互相赋值和运算。
-
强制数据类型转换:(类型名)(表达式)
- 浮点数强制转成整型:舍弃小数部分(正负数均可)(先转换后赋值)
- 整型强制转成浮点数:数值不变,以浮点数的形式存储到变量中(先转换后赋值)
- 占字节多的整型强制转成占字节少的整型:直接截断(只传送低字节)
(int)x%3;//先对x进行强转,再%3 (int)(x%3);//对(x%3)的值进行强转
-
C语句的分类:
-
控制语句
if(x>y) z = x; else z = y;
-
函数调用语句
printf("function diaoyong");
-
表达式语句
i = i+3; x+y;//合法但是没有实际意义。
-
空语句
;
-
复合语句(也叫语句块)
{ int a = 3, b = 2, c; c = a + b; printf("c = %d\n",c); }
-
-
二目运算符可以和赋值符一起组合成复合赋值符。
i += 3;//i=i+3 j -= i+1;//j=j-(i+1) k *= 4;//k=k*4 m /= 5;//m=m/5; n %= 6;//n=n%6;
-
所谓输入输出是以计算机为主体而言的
- 输出:从计算机向输出设备(显示器、打印机)输出数据
- 输入:从输入设备(键盘、光盘、扫描仪)向计算机输入数据
-
printf 和 scanf 不是C语言的关键字,只是库函数的名字,stdio.h 头文件中包括了与标准 I / O库有关的变量定义和宏定义以及对函数的声明。
-
#include <stdio.h>//<>:系统库函数 #include “file1.h”//"":自己写的文件而且在当前目录 #include "C:\temp\file2.h"//"文件路径":自己编写的文件而且不在当前目录
-
double a = 1.0;
float b = 2.0;
printf("%lf",a/3);//0.333333333333333double有效数字15位
printf("%f",a/3);//0.333333只输出6位
printf("%f,b/3");//0.666667float有效数字6位
```
-
scanf 输入%c字符时,空格和转义字符都是有效输入(tab、回车也是)
scanf("%c%c%c",&c1,&c2,&c3);//输入a b回车c是错的,输入abc才是对的
-
scanf 输入数值数据时,如果输入空格、回车、tab或非法数值(不属于数值的字符)都直接认为数据结束。
-
putchar()只输出字符,c可以是字符常量、字符变量、整型常量或整型变量(其值在字符的ASCII码范围内)
putchar('\101');//A putchar(65);//A putchar('\o15');//13
-
getchar()也会读入空格、换行和tab
-
!优先于 关系运算符 优先于 && 优先于 ||
-
switch语句一般形式:
switch(表达式){ //常量1,2,3,4互不相同 case 常量1:语句1;break;//表达式的值=常量1,执行语句1,结束 case 常量2: case 常量3:语句2;//表达式的值=常量2或者3,执行语句2,不结束连续输出,并且不进行判断 case 常量4:语句3;break; //表达式的值=常量2或者3,执行语句2和3 //表达式的值=常量4,执行语句3 default:语句4;//否则,执行语句4 }
数组、指针、结构体、枚举、共用体先空着~