选择语句
if 实例
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int input = 0;
printf("请输入0和1 >:");
scanf("%d", &input);
if (input == 1)
printf("1\n");
else
printf("0\n");
return 0;
}
循环语句
while实例
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int line = 0;
while (line < 20000)
{
printf("敲一行代码\n");
line++;
}
printf("代码20000行啦\n");
return 0;
函数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//函数的书写形式
int Add(int x, int y)
{
int z = x + y;
return z;
}
int main()
{
int num1 = 10;
int num2 = 20;
int sum = 0;
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
数组
数组定义
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//数组的定义
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//存放10位的数据
//下标为0,1,2,3,4,5,6,7,8,9
/*printf("%d\n", arr[4]);*/
int i = 0;
while (i < 10)
{
printf("%d\n", arr[i]);
i++;
}
return 0;
}
操作符
算术操作符
+
-
*
/
% 取模(取余数)
移位
>> 右移
<< 左移
实例
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
//移位操作符
int a = 1;
//00000000000000000000000000000001
int b = a << 2;
//00000000000000000000000000000100
printf("%d\n", b);
return 0;
}
位操作符
& 按位与
^ 按位异或
| 按位或
赋值操作符
=
+=
-=
*=
/=
&=
^=
|=
>>=
<<=
实例
//赋值操作符
int main()
{
int a = 10;
a = a + 10;
a += 10;
a = a - 20;
a -= 20;
a = a & 2;
a &= 2;
return 0;
}
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//单目操作符
//双目操作符
//三目操作符
int main()
{
int a = 10;
int b = 20;
int c = 0;
int d = 0;
int e = 0;
c = a + b;// + 双目操作符,有两个操作数
d = a++; //后置++,先使用,再++
printf("%d %d\n", d, a);
e = ++a;//前置++,先++,再使用
printf("%d %d\n", e, a);
int a1 = (int)3.14; //double -> int
return 0;
}
关系操作符
>
>=
<=
!=
==
逻辑操作符
&&
||
条件操作符
exp1 ? exp2 : exp3
逗号操作符
exp1, exp2, ..., expN
下标引用、函数调用和结构成员
[]
()
.
->
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int arr[10] = { 0 };
arr[4];//[] - 下标引用操作符
int a = 10;
int b = 20;
int sum = Add(a, b);//()-函数调用操作符
return 0;
}
//还缺少 & * . ->
常见关键字
register 寄存器关键字
int main()
{
register int a = 10;//建议把a定义成寄存器变量
return 0;
}
static 静态
struct 结构体关键字
typedef 类型定义语句
union 联合体(共用体)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
//typedef - 类型定义 -类型重定义
typedef unsigned int u_int;
u_int num2 = 20;
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//static
void test()
{
//int a = 1;
//a++;
//printf("a = %d\n", a);//会输出5个a=2
static int a = 1;//a 是一个静态的局部变量
a++;
printf("a = %d\n", a);
}
int main()
{
int i = 0;
while (i < 5)
{
test();
i++;
}
return 0;
}
//static修饰的局部变量/全局变量/函数,都只能作用于文件的内部,无法拥有外部链接属性
函数的使用
int Add(int x, int y)
{
int z = x + y;
return z;
}
//函数的使用
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test()
{
//int a = 1;
//a++;
//printf("a = %d\n", a);//会输出5个a=2
static int a = 1;//a 是一个静态的局部变量
a++;
printf("a = %d\n", a);
}
extern int Add(int, int);
int main()
{
int a = 10;
int b = 20;
int c = Add(a, b);
int i = 0;
while (i < 5)
{
test();
i++;
}
return 0;
}
#define定义常量和宏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//宏
#define MIN 100 //定义标识符常量
//函数定义方式
int Max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
//宏定义方式
#define MAX(X,Y) (X>Y?X:Y) //将MAX(X,Y)替换成后面的表达式
int main()
{
int min = MIN;
int a = 10;
int b = 20;
//函数方式求最大值
int max = Max(a, b);
//宏方式求最大值
max = MAX(a, b);
return 0;
}
指针
内存
生活中通过地址找到空间/房间
32位
64位
指的是有32/64根地址线
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 10;//4个字节
//&a;//取地址
//printf("%p\n", &a);
//return 0;
//有一种变量是永安里存放地址的-指针变量
int* p = &a;//int* 是p的类型
*p = 20;//* - 解引用操作符,将20送入*p指向的地址
printf("a = %d\n", a);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//字符型指针
int main()
{
char ch = 'w';
char* pc = &ch;
*pc = 'a';
printf("%c\n", ch);
return 0;
}
结构体
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//结构体
//如果要描述一本书
//书名+作者+出版社+定价+书号...
//复杂对象
//创建一个结构体类型
struct Book
{
char name[20];//C语言程序设计
short price;//55
};
int main()
{
//利用结构体类型-创建一个该类型的结构体变量
struct Book b1 = {"C语言程序设计", 55};
printf("书名:%s\n", b1.name); //使用 .操作符
printf("价格:%d\n", b1.price);//使用 . 操作符
b1.price = 15;
printf("修改后的价格:%d\n", b1.price);
return 0;
}