导图社区 《C语言程序设计》思维导图
网上一大堆的C语言课程,但是没有最全的知识点梳理。这是最好的C语言程序设计思维导图,既适合新手入门,也适合高手作为资料查询。
编辑于2019-01-25 06:02:40联网双创大赛项目基本思路思维导图。导图包括学生打游戏给社会带来极大负担、我们发现无法有效控制的原因是存在n个问题没有解决、该产品的应用推广情况、我们为保护该产品做了哪些工作、公司进展和规划、公司能为社会带来哪些效益等内容。
网上一大堆的C语言导图,但都是知识点的罗列,尤其是数组和指针的内在关系,都没有说清楚。本导图首次阐述了数组首地址、数组地址的区别,及其和指针的内在逻辑。这是最好的C语言程序设计思维导图,既适合新手入门,也适合高手作为资料查询。
本思维导图源自省级教坛新秀的省级示范课内容。首次明确了数组首地址和数组地址的定义,并详细比较其内涵和用法。从全新的角度阐述了数组、指针、函数的数据类型和内在关系。把C语言的最难点史无前例的用2个图清晰的展示出来。指针因为本图而不难!
社区模板帮助中心,点此进入>>
联网双创大赛项目基本思路思维导图。导图包括学生打游戏给社会带来极大负担、我们发现无法有效控制的原因是存在n个问题没有解决、该产品的应用推广情况、我们为保护该产品做了哪些工作、公司进展和规划、公司能为社会带来哪些效益等内容。
网上一大堆的C语言导图,但都是知识点的罗列,尤其是数组和指针的内在关系,都没有说清楚。本导图首次阐述了数组首地址、数组地址的区别,及其和指针的内在逻辑。这是最好的C语言程序设计思维导图,既适合新手入门,也适合高手作为资料查询。
本思维导图源自省级教坛新秀的省级示范课内容。首次明确了数组首地址和数组地址的定义,并详细比较其内涵和用法。从全新的角度阐述了数组、指针、函数的数据类型和内在关系。把C语言的最难点史无前例的用2个图清晰的展示出来。指针因为本图而不难!
《C语言程序设计》 思维导图笔记
约定
非特殊说明,实例程序及结果是在Dev C++5.11(64bit)版运行通过的
[]括着的表示可选项
所述的教材为:C程序设计(第五版)
C语言最简结构
#include <stdio.h> int main() { //insert your code here; return 0; }
基于C99标准
C语句必须以英文分号";"结尾。
规范:一行的语句数量不超过1句;因此在换行时应检查行尾是否有分号。
括号、引号应成对输入。然后通过方向键或鼠标移动到括号或引号内继续输入。
#include <stdio.h> 为预编译指令,不C语句所以行尾不能加分号。
printf
所在库
stdio.h
原型
int printf(const char * format,...);
调用格式
printf("输出字符串",输出列表);
注意:输出字符串要用英文的双引号引上,与输出列表之间用英文逗号隔开 输出列表中的各项之间也用英文逗号隔开。
例:printf("%d, %c",123,var); //var是一个字符型变量
字符串
普通字符串
原样输出
转义字符
转义输出,以\开头。
常见转义字符及含义
\n:换行符
\b:退格符
\t:横向制表符
\\:反斜杠
\":双引号
其他的见教材第40页
格式字符串
以%开头,与输出列表一一对应
%[flags][width][.precision][length]Type
Type
d,i:输出十进制有符号数
u:输出十进制无符号数
o/lo:输出八进制无符号数
x/X:输出十六进制无符号数,x对应abcdef,X对应ABCDEF
f/lf:输出单精度/双精度浮点数
e/E:以指数形式输出实数,e表示小写(如:1.2e+02),E表示大写(如:1.2E+02)
g/G:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
c:字符型输出。可以把输入的数字按照ASCII码相应转换为对应的字符
s:输出字符串。输出字符串中的字符直至字符串中的'\0'
flags
-:减号,输出结果左对齐,右边填空格。默认右对齐,左边填空格
+:加号,输出正负号
:空格,输出正数时加上空格,输出负数时添加符号
#:井号,type为o,x,X时,添加前缀0,0x,0X type为e,E,g,G时,强制输出小数点。默认情况下:如果使用.0控制不输出小数点 type为g/G时,保留尾部的0
0:数字0,指定列宽不满时,前面补0
width
十进制整数:指定输出宽度,不足时补0。printf("%6d",1000),输出:001000
0*:在输出列表中指定输出宽度。printf("%0*d",6,1000),输出:001000
.precision
以.开头,后跟十进制数
对于整型,表示输出的最小数字个数,不足补0,超过不截断。
对于e/E,f/lf,表示小数点后数值位数,不足补零,超过截断。默认为6位
对于g/G,表示最大有效数字
对于字符串s,表示最大输出字符数,不足正常输出,超过则截断。
不显式指定,默认位0
.* 在输出列表中指定精度
基本数据类型 (DataType)
基本类型
整型
[unsigned] char
1. 在Dev C++中,长度依次为:1、2、4、4、8 2. 整型均有无符号和有符号之分。 3. 整型的长度须满足: long long int >= long int >= int >= short int 4. 测试方法:printf("%d",sizeof(int)); 输出4;说明int的长度为4个字节
[unsigned] short int
[unsigned] int
[unsigned] long int
[unsigned] long long int
bool:C99中规定的数据类型,但Dev C++5.11仍不支持
浮点型
float
1. 在Dev C++中,长度依次为:4、8、16 2. 浮点数的长度须满足: long double >= double >= float 3. float有6位有效数字,double有15位有效数字,long double有19位有效数字 4. 浮点数精度会丢失
double
long double
字符型
char
在C99中,字符型是整型的一种。
char除做1个Byte的整数外,还作为字符型使用。用以存放ASCII码字符,使用时用单引号包含。例如:'a','0'。
注意:0和'0'是不一样的。前者是数字0,后者是字符0,后者也可表示数字48,即'0'的ASCII码值。
空类型(void)
枚举类型(enum)
派生类型
指针类型(*)
char*, int*, void*, ......
数组类型([])
int array[], ......
结构体类型(struct)
共用体类型(union)
函数类型
数据类型的转换
(目标类型名)(表达式)
把表达式的结果强制转换为目标类型
例:(int)(12.3+5) //把12.3+5的结果17.3强制转换为整型,其结果为17 printf("%d",(int)(12.3 + 5)); // 17
常量
在程序运行过程中,不发生改变的量
字面常量/直接常量
整型常量
例:0,-1,100,1000000000L
实型常量
例:12.34, -1.0,1.23e5,-1.3e-3
实型常量在Visual C++被默认为双精度类型,需要用lf输出
字符常量
普通字符
例:'a','A','0','8','*'
转义字符
例:'\n','\\','\t','\?','\060','\x30'
详见教材第40页
字符串常量
例:"abc","abc123"等
符号常量
用#define指令,用一个符号代表一个字面常量
#define PI 3.14159
用PI代表3.14159
规范写法:符号要大写,单词之间用下划线分开,表意清楚
例:#define PRICE_OF_APPLE 3.4
行尾不要加分号
变量
变量代表一个有名字的、具有特定属性的存储单元。
变量名:存储单元的名字
规范:望文知意
变量值:存储单元里面的值
数据类型:存储单元里存放数据的类型
变量地址:存储单元的地址
定义
DataType VariableName[ = InitializedValue];
每行一个变量,行尾加分号
例:int length = 10;
C语言规范要求:变量定义时务必要有初始值。
通常用于定义文件,定义文件的扩展名为:c
声明
DataType VariableName;
每行一个变量
例:int length;
通常用于头文件,头文件的扩展名为:h
常变量
变量的形式、常量的本质。 通常,编译器不为常变量分配存储空间,而是将其存在符号表内,效率较高。
const DataType VariableName = Value;
每行一个常变量,其值不能修改
例:const float pi = 3.142;
const修饰指针
const int *p
p可变,*p不可变
int const *p
p可变,*p不可变
int *const p
p不可变,*p可变
const int *const p
p不可变,*p不可变
运算符
算术运算符:+(加)、 -(减)、 *(乘)、 /(除)、 %(取余)、 ++(自加)、 --(自减)
++、--
前置 表达式的值为操作后的值,操作完成后变量值自加或自减1
后置 表达式的值为操作前的值,操作完成后变量值自加或自减1
不要再复杂场景下使用++、--运算符。避免不必要的阅读困难。
运算符的优先级与结合性
先乘除后加减,从左往右算。
使用小括号提高运算优先级,在优先级不明显的地方用小括号进行明确。
混合运算,最大限度保留精度。例:整型+浮点型的结果为浮点型。
逻辑运算符:&&(与)、 ||(或)、 !
短路求值。例:a = 3; printf("%d %d\n",0&&(++a), a);//0 3
赋值运算符:=, +=, -=, *=, /=, %=
变量 赋值运算符 表达式
左值和右值
左值标识一个指定的存储位置
右值提取存储再当前位置的值
位运算符:<<(左移), >>(右移), ~(反), &(与), |(或), ^(异或)
关系运算符:>(大于)、 >=(大于等于)、 <(小于)、 <=(小于等于)、 ==(等于)、 !=(不等于)
逗号运算符:,
指针运算符:*, &
强制类型转换运算符:()
成员类型操作符:., ->
条件运算符:?:
Scanf
所在库
stdio.h
调用格式
scanf("格式字符串",地址列表)
按照格式,把键盘输入的数据,放到地址列表指定的地址里
格式字符串
d/i:输入有符号十进制数
*:本输入项在读入后不赋给相应的变量
o:输入无符号八进制数
x/X:输入无符号十六进制数
c:输入单个字符
s:输入字符串,将字符送到字符数组中。以非空白字符开始,以空白字符结束。字符串以串结束标志'\0'作为最后一个字符。
u:输入无符号十进制数
e/E/g/G:与f相同,不区分大小写
ld/lo/lx/lu/lf/le:输入长型数据
hd/ho/hx:输入短型数据
域宽:指定输入数据所占宽度。
f:输入实数,可以是小数形式,也可以是指数形式