C语⾔理论知识整理
个⼈整理来源于《C Primer Plus》以及⽹络。
使⽤C语⾔的7个步骤:
1、定义程序的⽬标:⽤⼀般术语描述要做什么;
2、设计程序:考虑如何使⽤程序来完成;
3、编写代码:把设计的程序翻译成C语⾔;
4、编译:把源代码转换成可执⾏代码的程序;
5、运⾏程序:可执⾏⽂件是可运⾏的程序;
6、测试和调试程序:查并修复程序错误的过程;
7、维护和修改代码:程序有错,或者想扩展程序的⽤途。
int main(void)  C Primer Plus
void main()  C语⾔从⼊门到精通
使⽤标准写法,保证编译器能接受。
注释⽅法:
c语言如何创建字符串数组
1、 /* 注释 */  “注释”之间的内容都会被编译器忽略;
2、// 这种注释只能写成⼀⾏。
如果变量名⽆法清楚地表达⾃⾝的⽤途,可在注释中进⼀步说明。这是⼀种良好的编程习惯和编程技巧。
C语⾔中的6种语句:标号、复合、表达式、选择、迭代、跳转。
实际参数(简称实参)是传递给函数的特定值,形式参数(简称形参)是函数中⽤于储存值的变量。
养成在main()函数中保留return语句的好习惯。
float是浮点型变量,使⽤%f来处理浮点值。%.2f中的.2⽤于精确控制输出,指定输出的浮点数只显⽰⼩数点后⾯两位。
现在个⼈计算机上最常见的设置是:long long占64位,long占32位,short占16位,int占16位或32位(依计算机的⾃然字长⽽定)。⽤单引号括起来的单个字符被称为字符常量。如果省略单引号,就会认为是⼀个变量名;如果⽤双引号括起来,就会认为是⼀个字符串。
转义序列:
printf()函数使⽤%f转换说明打印⼗进制记数法的float和double类型浮点数,⽤%e打印指数记数法的浮点数。
sizeof是C语⾔的内置运算符,以字节为单位返回运算对象的⼤⼩。sizeof返回size_t类型的值。
scanf()在遇到的第⼀个空⽩(空格、制表符或换⾏符)时就不再读取输⼊。
字符串和字符:
字符串常量"x"和字符常量'x',不同。区别之⼀在于'x'是基本类型(char),⽽"x"是派⽣类型(char数组);区别之⼆是"x"实际上是由两个字符组成:'x'和空字符\0。
对于类型,应写成sizeof(char)或sizeof(float);对于特定量,可写成sizeof name或sizeof 123。但是建议还是所有情况都使⽤圆括号,sizeof(123)。
预处理器格式:
⾸先是#define,接着是符号常量名,然后是符号常量的值(注意并没有=符号)。所以,其通⽤格式为 #define NAME value
同时注意,末尾不加分号,因为这是⼀种由预处理器处理的替换机制。⽤⼤写表⽰符号常量是C语⾔⼀贯的传统,这样在程序中看到全⼤写的名称就⽴刻明⽩这是⼀个符号常量⽽⾮变量。#define指令还可以定义字符和字符串常量,前者使⽤单引号,后者使⽤双引号。
printf()函数,转换说明及其打印的输出结果:
printf()中的标记:
打印较长的字符串时,不能在双引号括起来的字符串中间断⾏。
给字符串断⾏的三种⽅法:
1、使⽤多个printf()语句。因为第⼀个字符串没有以\n字符结束,所以第⼆个字符串紧跟着第⼀个字符串末尾输出;
2、⽤反斜杠(\)和enter(或return)键组合来断⾏。这使得光标移⾄下⼀⾏,⽽且字符串中不会包含换⾏符。其效果是在下⼀⾏继续输出。但是,下⼀⾏代码必须从最左边开始。如果缩进开始,⽐如缩进5个空格,那么这5个空格就会成为字符串的⼀部分;
3、ANSI C引⼊的字符串连接。在两个⽤双引号括起来的字符串之间⽤空⽩隔开,C编译器会把多个字符串看作是⼀个字符串。
scanf()的使⽤规则:
1、如果⽤scanf()读取基本变量类型的值,在变量名前加上⼀个&;
2、如果⽤scanf()把字符串读⼊字符数组中,不要使⽤&。
scanf()如果成功读取就返回1,失败则返回0,如果在转换值之前出现问题(例如,检测到⽂件结尾或遇到硬件问题),会返回⼀个特殊值EOF(其值通常被定义为-1)。
scanf()的转换说明:
printf()中的*修饰符,如果转换说明是%*.*d,那么参数列表中应包含*和d对应的值,两个*分别代表字段宽度和浮点值指定精度。⽽在scanf()中的*修饰符,会使得scanf()跳过响应的输出项。
递增递减运算符:
n++表⽰“先使⽤n,再递增”;++n表⽰“先递增n,再使⽤”。递减同理。使⽤规则如下:
1、如果⼀个变量出现在⼀个函数的多个参数中,不要对该变量使⽤递增或递减运算符;
2、如果⼀个变量多次出现在⼀个表达式中,不要对该变量使⽤递增或递减运算符。
运算符优先级:算术>关系>赋值。
在创建⼀个重复执⾏固定次数的循环中设计3个⾏为:
1、必须初始化计算器;
2、计数器与有限的值作⽐较;
3、每次循环时递增计数器。
for循环:
关键字for后⾯的圆括号中有三个表达式,分别⽤两个分号隔开。第⼀个表达式是初始化,只会在for循环开始时执⾏⼀次。第⼆个表达式是测试条件,在执⾏循环之前对表达式求值。如果表达式为假,循环结束。第三个表达式执⾏更新,在每次循环结束时求值。
for循环可以省略⼀个或者多个表达式(但是不能省略分号),只要在循环中包含能结束循环的语句即可。省略第⼆个表达式被视为真。在执⾏循环的其他部分之前,只对第⼀个表达式求值⼀次或执⾏⼀次。
如果char类型的数组末尾包含⼀个表⽰字符串末尾的空字符\0,则该数组中的内容就构成了⼀个字符串。
编写⼀个有返回值的函数,要完成以下内容:
1、定义函数时,确定函数的返回类型;
2、使⽤关键字return表明待返回的值。
ctype.h头⽂件中的字符测试函数:
ctype.h头⽂件中的字符映射函数:
switch和if else:
如果是根据浮点类型的变量或表达式来选择,就⽆法使⽤switch。如果根据变量在某范围内决定程序流的去向,使⽤switch就会很⿇烦,这种情况使⽤if就很⽅便。
原则上,根本不⽤在C程序中使⽤goto语句。
getchar()和putchar()每次只处理⼀个字符。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。