导图社区 C语言程序设计
C语言从入门到精通详细教程!数据类型、指针数组、基本运算,一图全打尽,更有冒泡排序与交换排序的详细介绍,助你快速掌握程序设计基本知识。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
【华政插班生】文学常识-两宋
C语言程序设计
c语言中的数据类型分类
基本类型
整型 int
十进制 123 %d
八进制 0123 %o
十六进制 0x123 %x
实型 float double
小数1.23 %f
指数3.14e-6 %e
可以使用%g输出 省略多余的0
字符型 char
字符型常量 %c
putchar() getchar()
字符串型常量 %s
gets(str) puts(str)
字符型指针 char *ptrStr=str
string,h
求字符串长度
strlen(str)
字符串复制
strcpy(str1,str2)str2->str1
字符串比较
从左到右按字符ascll码大小逐个字符比较 直到出现不同字符或\0
strcmp(str1,str2)
str1>str2 return>0
str1=str2 return=0
str1<str2 return<0
字符串连接
strcat(str1,str2)
my
指针与字符串(右边的所有形式的含义相同)
char str[100]={} char *p p=str
str[1]
*(str+1)
p[1]
*(p+1)
*(++p)
*(++str)
向函数传递字符串时既可以用字符数组作为函数参数 也可以使用字符指针作为函数参数
/0作为结尾
可以直接printf(”%s“,str)
还有 scanf(”%s“,name)
枚举型 enum
没啥用
构造类型
数组
整型数组 int num[]
数组的下标都是从0开始
int char是指数组的基本类型 下标个数代表数组维度
定义数组的维度时不能用变量(int num [n]错误)
二维数组a[1][2]指1行2列
二维数组的行可以省略 列不可以
把数组传递给函数可以不用带[](max=FINDMAX(score)) 数组名代表第一个元素的首地址
初始化数组时不可越界 但数组需要初始化
字符型数组 char xxx[]
赋值方法
一维
char str[3]={'r''p''e'}
char str[]={'r''p''e'}
char str[]={"rpe"}
char str[]="rpe"
二维
char str[2][10]={"rpe","rpers"}
char str[][10]={"rpe","rpers"}
动态数组
堆
栈
结构体 struct
成员选择 结构体变量名.成员名
结构体指针
STUDENT *pt pt=&stu1
pt->studentID
共用体 union
就是三选一的那种情况
知识点
ASCII码相关
ascii->字符
48->0
65->A
97->a
输入输出
输入
scanf("%d",&a)
输出
printf
scanf中用户输入的数字需要与“”里的一样
变量的存储类型
自动变量
自动更新
静态变量
刷新后不会改变值
全局变量
函数
不能在一个函数体内定义另一个函数
定义一个有返回值的函数记得加return
基本运算
算术运算
5/2=2 5.0/2=2.5
求余运算两边必须是整数 2.0都不行
++i和i++要小心
#include"math.h"
++只能对一个变量使用
关系运算
1
if else
2
if else if else if
3
switch(变量) case 常量1: 语句 case 常量2: 语句
switch记得break
if后不带;号
if中的=要==(==中不能带空格)
在判断两个浮点数 a 和 b 是否相等时,不要用 a==b
不能连续比较a<b<c
逻辑运算
!非
&& 与
||或
循环控制结构
while
do-while
for
分号注意
循环开始前 要将计数器初始化
for()后不能加;号
for()里三个条件用;隔开
do while的while后面要加;
嵌套循环内外层的循环控制变量不能相同
常用算法
排序
交换排序法
拿最前的和后面的一个一个比大小,比其大就交换
冒泡排序法(选择)
两两相互比较 找到大的就拿大的和其他的数比较 全部比较完后 把最大的放在第一个
查找
折半查找
排好序了以后,先选取位于数组中间的元素 将其与查找数进行比较,否则将其区间缩小为原来的一半(该数可能会存在的区间)再次查找
最大值最小值
比大小然后n=大的 输出n
注意事项
#define N 12 后面不能加;号
类型转换
强制类型转换
(类型名)表达式
自动类型转换
将取值范围小的转换为取值范围大的
指针
间接寻址运算符
可用作在一个函数里返回两个值
在使用指针变量前需要进行初始化
引用函数时 swap(&a,&b)
函数中使用指针时需要*p=9
数组与指针
一维数组指针以下表述方式相同
int a[3]={1,2,3} int *pa pa=a
a[i]
pa[i]
*(pa+i)
*(a+i)
二维数组一下表示方式相同
int a[2][3] p=&a[0];
p[i][j]
*(p[i]+j)
*(*(p+i)+j)
(*(p+i))[j]
以下对指针初始化的方式相同
p=a[0]
p=*a
p=&a[0][0]