C语言程序结构
hello world!
1 | #include<stdio.h> |
预处理
#define 宏名 字符串
类似一种预替换。
1 | #define M(y) y*y+3*y //带形参的宏定义 |
数据类型与格式化输出
基本数据类型
- 整型 int
- 字符型 char
- 实型(单精、双精) float/double
构造数据类型
- 枚举类型
- 数组类型 //
数据类型 数组名称[长度];
- 结构体类型
- 共用体类型
指针类型
空类型四大类
格式化输出
printf("普通字符输出格式符", 输出项);
- %d 整数
- %c 单个字符
- %s 字符串
- %f 实数
常量
#define POCKETMONEY 10 //定义常量及常量值
定义方式为 #define 标识符 常量值
强制类型转换
(数据类型) (表达式)
如 (int)(x/2+y)
运算
常见表达式
运算表达式 | 说明 |
---|---|
++a | 先自加,再取值 |
a– | 取值后自减 |
a+=5 | a = a+5,即先加再赋值 |
== | 判断符号 |
&& | 与 |
! | 非。如!(5>8)为真 |
位运算
运算符 | 说明 | 详细 |
---|---|---|
& | 按位与 | 9&5在内存中解为二进制,仅1与1为1 |
| | 按位或 | 如上,有1则1 |
^ | 按位异或 | 如上。不同为1,相同为0 |
~ | 取反 | 取反 |
<< | 左移 | 二进制左移,丢高位,低位补0 |
>> | 右移 | 丢地位,高位按高位内容补 |
三目运算
表达式1 ? 表达式2 : 表达式3;
意为先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。
程序结构
判断体
if判断结构
1 | if(表达式1) |
switch语句
1 | switch(){ |
循环体
for循环
1 | for(执行1;判断1;每次循环句) |
while循环
1 | while(为“真”即循环) |
do-while循环
1 | do |
break和continue循环中断
break跳出当前一层循环;
continue结束本次循环开始下次。
定义函数
函数声明及调用
1 | [数据类型说明] 函数名称([参数]); //类型用void |
指针
指针的本质就是一个保存变量数据存储地址的变量,即内存编号,是一个以十六进制表示的整数,可以加减运算。
int a=10,*pa=&a;
&
可用于取变量地址。
如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。
int a=100,*p1=&a,*p2=&p1; //禁止套娃
结构体与枚举
结构体
结构体是存储不同类型数据的集合,又被称为复杂数据类型。作为一种数据类型,即可用于定义变量,甚至数组、指针。其数据在内存中如数组一样,也是连续的。
1 | struct stu{ //stu是结构体名称 |
共用体(很少用)
共用体与结构体类似,但占用的内存为相同【不好理解】,而不像结构体那样,生成的变量占用的内存互不干扰。
1 | union data{ |
枚举
枚举默认给其中的内容按顺序赋值,也可以指定值。
enum typeName{ valueName1, valueName2, valueName3, ...... };
如:
enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 }
经典c语言程序
c语言2048(来自网络)
1 | /* |
c语言学生信息管理系统(来自网络)
1 | #define _CRT_SECURE_NO_WARNINGS 1 |