前言
很多小伙伴刚开始学习C语言时应该注意以下几点:
1、足够耐心,学习C语言是一个漫长的过程,如果听不懂,一定要不耻下问才会有所收获,不要放弃。
2、学会实践,C语言是一门编程课,需要实操,大家要勤敲代码,并且形成良好的代码风格。
3、勤思考,遇到不会的问题要先思考后,再问老师或同学,想想代码语法哪里出错了。
顺序结构
一、标识符
1.定义
许多变量、函数、数组、文件需要起个名字,这个名字就叫标识符。
2.命名规则
要以字符或下划线开头,一般不超过8个字符,而且区分大小写。 如a、Ab123、_1234abc、_acv等。 关键字不能充当标识符,如long,double等。
二、常量
类型 | 说明举例 | 占内存字节数 | 输入/输出控制 |
整型 | 56,-67 | 4B | %d |
字符型 | ‘A’ ‘!’ ‘\0’ | 1B | %c |
字符串 | “abc” | 字符数+1 | %s |
小数型 | -3.5、0.9 | 8B | %lf |
指数型 | -3.2e2(表示-320) 1.2E-2(表示0.012) | 8B | %lf或%le |
三、变量
类型 | 定义 | 所占字节数 | 输入格式控制 | 输出格式控制 |
整型 | int | 4B | %d | %d |
无符号整型 | unsigned int | 4B | %u | %u |
长整型 | long | 4B | %ld | %ld |
双精度实型 | double | 8B | %lf | %lf或%f |
单精度实型 | float | 4B | %f | %f |
字符型 | char | 1B | %c | %c |
四、相关表达式和运算符
1. 强制类型转换
形式:(类型名)表达式 功能:将一个表达式的值转换为指定的类型
2. 赋值表达式
形式:变量名=表达式 左边是变量名右边是表达式的值,将表达式赋给一个变量, 结合性是自右向左。
3.自加、自减运算符
自加、自减运算符为++和--。 自加(减)运算符在前面的,先增(减)后用. 自加(减)运算符在后面的,则先用后增(减)。
设k=3,计算以下赋值表达式后,求x,k和表达式的值。
表达式 | x的值 | k的值 | 赋值表达式的值 |
x=k++ | 3 | 4 | 3 |
x=++k | 4 | 4 | 4 |
x=k- - | 3 | 2 | 3 |
x- -k | 2 | 2 | 2 |
4.逗号运算符和表达式
形式:表达式1,表达式2,...,表达式n 结合方向:自左向右。
选择结构
一、关系运算符
C语言中有“<” “<=” ">" ">=" "==" "!="6种关系运算符, 关系运算符的优先级低于算数运算符,高于赋值运算符。
二、逻辑运算符和表达式
1.逻辑运算符
C语言有“&&” “||” “ !”三种逻辑运算符, “ !”为单目运算符,优先级高于算数运算符, 逻辑与 “&&” 和逻辑或 “ || ”的优先级低于关系运算符高于赋值运算符。
2.逻辑运算符中的短路
当出现 “0&&表达式”的逻辑表达式时,因0与任何表达式的结果均为0,无须计算右边的表达式,这就是逻辑运算中的短路。同样,“1||表达式”也存在短路现象。
三、真与假
C语言中认为非0的值为 “真”,0为 “假”,当条件成立是结果为“ 真 ”,就是1;否则为 “假”,就是0。
四、条件运算符和表达式
1.条件运算符
条件运算符"? :"是三目运算符,需要三个运算对象, 条件运算符的优先级高于赋值运算符,低于关系运算符和算数运算符。
2.条件表达式
条件表达式的一般形式如下: 表达式1?表达式2:表达式3
先算表达式1,表达式1的值非0,求解表达式2,此时表达式2就是整个条件表达式的值,不执行表达式3;
否则,计算表达式3的值为整个条件表达式的值,不用计算表达式2。
五、if语句形式
if(表达式) 语句1 else 语句2
(1) if后的表达式必须用括号括起来
(2)语句可以是由若干条语句构成的复合语句,用一对花括号括起来;还可以是一条空语句,用一个分号 “ ;”表示。
(3)当语句2是空语句时,else连同语句2可省略。
(4)语句1和语句2还可以是if语句,即if语句的嵌套。
六、switch语句
switch(表达式) { case 常量表达式1:语句1; case 常量表达式2:语句2; case 常量表达式n:语句n; default:语句; }
这个switch语句与if语句相似,都是分支语句,判断成立后就跳出判断,若case都不成立则执行default语句。
循环结构
一、while循环结构
while(表达式) {语句}
while循环是先计算表达式的值,表达式的值为真时执行循环体中的语句。 然后反复执行,每次执行都会判断表达式的值是否为真,表达式的值为假时结束循环,接着执行循环体下面的语句。
二、do…while循环结构
do{ 语句 }while(表达式);
do…while循环是循环的变体。再检查while( )条件是否为真之前,会执行一次do{ }之内的语句,然后在while( )内检查条件是否为真,如果条件为真,重复do while这个循环直到while()语句为假,退出循环,输出结果。
三、for循环结构
for(表达式1:表达式2:表达式3) { 语句; }
执行过程如下:
1)求解表达式1。
2)求解表达式2。若为真,则执行for语句中指定的内嵌语句,然后执行第三步;若表达式2值为假,则结束循环,转到第五步。
3)求解表达式3.
4)转回上面第2步继续执行。
5)循环结束,执行for语句下面的语句。
四、break语句和continue语句
break和continue两大关键词的定义:
1)break的定义:只要循环遇到了break,就停止break接下来的所以循环(break之后的代码也不再执行),之间中之所有循环。
2)continue的定义:只要循环遇到了continue,就会终止本次循环,本次循环continue后面的代码不会执行。