目录
EG:
如果你好好学习,你就可以去看张艺兴的演唱会
如果你不好好学习,你就只能去看张翰
if(条件1){ 条件语句}
- #define _CRT_SECURE_NO_WARNINGS
- #include
- int main()
- {
- int study = 0;
- printf("你会好好学习吗?(选择1 or 0):>");
- scanf("%d", &study);
- if (study==1)
- {
- printf("好好学习,看张艺兴\n");
- }
- else
- {
- printf("不好好学习,罚你看张翰\n");
- }
- return 0;
- }
C语言循环结构(while循环,for循环,do…while循环) (biancheng.net)
学习天数大于100天可以看张艺兴
学习天数小于100天看张翰
- #include
- int main() {
- int day = 0;
- while (day < 100) {
- day++;
- printf("看张翰");
- }
- if (day >= 100)
- printf("看张艺兴吧");
- }
特点:是简化代码,代码复用。
- #include
- int main()
- {
- int num1 = 0;
- int num2 = 0;
- int sum = 0;
- printf("输入两个操作数:>");
- scanf("%d %d", &num1, &num2);
- sum = num1 + num2;
- printf("sum = %d\n", sum);
- return 0;
- }
- //上述代码,写成函数如下:
- #include
- int Add(int x, int y)
- {
- int z = x+y;
- return z;
- }
- int main()
- {
- int num1 = 0;
- int num2 = 0;
- int sum = 0;
- printf("输入两个操作数:>");
- scanf("%d %d", &num1, &num2);
- sum = Add(num1, num2);
- printf("sum = %d\n", sum);
- return 0;
- }
数组的定义:一组相同类型元素的集合
数组的概念:数组中可以存放一组同类型的元素
数组的创建和初始化
\\int arr[10]={0,1,2,3,5,6}\\不完全初始化,剩余的默认初始化为0
\\char arr[10={"a","b","c"}]\\不完全初始化,剩余的默认初始化为\0
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

- #include
- int main()
- {
- int i = 0;
- int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
- for (i = 0; i < 10; i++)
- {
- printf("%d ", arr[i]);
- }
- printf("\n");
- return 0;
- }
变量可以是数组的下标

- #include
- int main()
- {
- int i = 0;
- int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
- for (i = 0; i < 10; i++)
- {
- printf("%d\n", arr[i]);
- }
- return 0;

![]()

![]()

//后置++,表示先使用,后+

- int main()
- {
- int a = 0;
- int t = a++;
- printf("%d\n", t);
- }

- int main()
- {
- int a = 0;
- int t = ++a;
- printf("%d\n", t);
- }
错误格式
【
if(18<=a<=29)不能这样书写;
因为是从右到左考试的,当a=88,则从右开始,第一部分成立,答案为1;其次为第二部分,仍成立,则为1;
但实际判断结果应该为0】


// &&同时为真,则为真
// ||有一个为真就是真

exp1成立,结果为exp2
exp1不成立,结果为exp3
exp1,exp2,exp3,...,expN


//C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。
//变量不能是关键字
//register寄存器
| 寄存器 | 字节 |
| 高速缓存 | xxM |
| 内存 | 8G/16G |
| 硬盘 | 500G |
| 网盘 | 2T |
从小往上,速度越来越快,造价就越来越高,空间越来越小 (前三个)
寄存器与CPU中央处理器的联系
///register int a=10//建议把a的值放入寄存器
typedef 顾名思义是类型定义,这里应该理解为类型重命名。
在C语言中: static是用来修饰变量和函数的
1. 修饰局部变量-称为静态局部变量
//一般情况下,局部变量出大括号会销毁
//加入static不会销毁
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
1.修饰局部变量
1)无static状况
- #define _CRT_SECURE_NO_WARNINGS
- #include
- void test()
- {
- int a = 0;
- int t=a++;
- printf("%d\n", t);
- }
-
- int main()
- {
- int i = 0;
-
- while (i<10)
- {
- test();
- i++;
- }
-
- return 0;
- }

//a进入就创建,出去就销毁
2)有static状况
- #define _CRT_SECURE_NO_WARNINGS
- #include
- #include
- void test()
- {
- //static修饰局部变量
- static int i = 0;
- i++;
- printf("%d\n", i);
- }
- int main()
- {
- int i = 0;
- for (i = 0; i < 10; i++)
- {
- test();
- }
- return 0;
- }

//普通的局部变量是放在栈区上的,这种局部变量进入作用域创建,除了作用域就释放了。
//但是局部变量被static修饰后,这种变量就放在静态区,放在静态区的变量,创建好后,直到程序结束才释放。
//本质上:static的修饰改变了局部变量的存储位置,因为存储位置的差异,使得执行效果不一样。
//被static修饰不影响作用域

2.修饰全局变量
1)无static状况
工程中的一个源文件
int g_val = 10;
工程中的另一个源文件
- #include
- extern int g_val;
-
- int main()
- {
- printf("%d\n", g_val);
-
- return 0;
- }
无static时,可以得出结果

2)有static状况
static int g_val = 10;
无法运行结果

//全局变量本身是具有外部链接属性的
//在第一个文件中定义的变量,在第二个文件可以通过【链接】 使用
//但是如果全局变量被static修饰,这个外部链接就变成了内部链接属性,这个全局变量只能在自己所在的源文件内部使用
//static的修饰,会把外部链接属性变成内部链接属性,最终使得全局变量的作用域变小了
//加入static的目的,只想源文件内部独享全局变量,不想和同一工程的源文件共享
3.修饰函数
1)无global
2)有global
和第二种情况类似
//函数本身是具有的外部链接属性的
//被static修饰后,外部链接属性就变成了内部链接属性
//使得这个函数只能在自己所在的源文件内部使用,其他源文件无法使用
- //define定义标识符常量
- #define MAX 1000
- //define定义宏
- #define ADD(x, y) ((x)+(y))
- #include
- int main()
- {
- int sum = ADD(2, 3);
- printf("sum = %d\n", sum);
-
- sum = 10 * ADD(2, 3);
- printf("sum = %d\n", sum);
-
- return 0;
- }

- #include
- #define 定义符号 / 宏
- #define M 100
-
- int Max(int x, int y)
- {
- //if (x > y)
- // return x;
- //else
- // return y;
- return (x > y ? x : y);
- }
-
- #define MAX(x,y) (x>y?x:y)
- #define ADD(x,y) ((x)+(y))
-
- int main()
- {
- //int a = M;
- //printf("%d\n", M);
- //printf("%d\n", a);
-
- int a = 10;
- int b = 20;
- //int m = Max(a, b);
- int m = MAX(a, b);
- //int m = (a > b ? a : b);
- printf("%d\n", m);
-
- return 0;
- }

