目录
1.变量
1.1变量的创建
1.2变量的种类
2.操作运算符
3.赋值操作符:=与复合赋值
开始
1.变量
1.1变量的创建
变量,顾名思义是可以一直变化的量,如:银行卡余额,欢乐豆颗数
前面了解的数据类型,就是为创建变量而服务的
创建变量的形式为:数据类型 变量名称(可自己起)
int weight;//整型变量
char ch;//字符型变量
double temperature;//浮点型变量
给变量赋值,就是对变量进行 初始化
注意:变量被初始化赋值不代表它像常量一样值不变,变量的值可以一直发生改变
double weight=61.5;
char ch='w';
unsigned int age=20;
1.2变量的分类
1.2.1种类
分为:全局变量和局部变量
概念:两者其实是相对来说的,在大括号外面的变量叫全局变量,在大括号里面的叫局部变量
#inlude<stdio.h>
int main(void)
int a=1;//全局变量
{
int b=5;//局部变量
printf("%d %d",a,b);
return 0;
}
1.2.2全局变量与局部变量作用域与优先级
以上面的代码为例,全局变量a作用于整个工程,而变量b只能作用于它所在的大括号内
改写上述代码 看看效果
直接报错,说明变量b的作用域不能离开它所在的大括号
那么 问题来了
如果两个变量名相同
运行结果
所以,这里可以叫就近原则,printf会打印离自己最近的a变量
可以说:局部变量优先级大于全局变量
1.2.3全局变量与局部变量在内存中的存储
一般在c语言或c++中,会关注三个存储区:栈区,堆区,静态区
看张图
1.局部变量存放在内存的栈区
2.全局变量存放在内存的静态区
3.堆区是用来管理动态内存的
(后期详细介绍)
2.算术操作符 +,-,*,/,%
操作符也叫运算符,+,-,*,/,%的两端都需要有数字,所以叫做双目操作符,位于运算符两端的叫操作数
2.1 +和-
分别用于加减运算
上代码看看
#include<stdio.h>
int main(void)
{
int a=1+2;
int b=6+5;
printf("a+b=%d",a+b);
return 0;
}
2.2 *(乘)
没啥好说的,直接上代码
#include<stdio.h>
int main(void)
{ int num=5
printf("%d\n",num*num);
return 0;
}
2.3 /(除)
先上段代码看看
再看结果
所以,得出结论:如果/两边的操作数都是整数,那输出的必然是取整数部分后的值,就算你硬用float,最后也只是小数的形式而已
那怎么输出1.5?
当**/两边操作数至少有一个为小数**时,就会输出1.5
float a=6.0f/4
//或者是
float a=6/4.0f
//这里,用float定义时,最好在小数后面加上f,防止系统把小数默认为double类型
再看个例子
正常算结果是25
但运行结果其实是0,与上同理
如果想输出25
改:
score=(score/20.0)*100
2.4%(取模)
%:返回两个整数相除的余值
#include <stdio.h>
int main()
{
int x = 6 % 4; // 2
return 0;
}
负数求模的规则是:返回值的正负与第一个操作数一致
#include<stdio.h>
int main()
{
printf("%d",11/-5)// 1
printf("%d",-11/5)// -1
printf("%d",-11/-5)// -1
return 0;
}
3.赋值操作符:=和复合赋值
在变量创建时,给一个初始值,叫初始化
变量创建好后,再给一个值,叫赋值
int a=0;//初始化
a=100;//赋值
**=**是赋值符号
3.1连续赋值
int a=1;
int b=2;
int c=3;
c=b=a+3//从右到左依次赋值,即:把a+3的值赋给b,再把b的值赋给c
但连续赋值难展现赋值过程与细节,所以推荐写成:
b=a+3;
c=b;
3.2复合赋值符
用于简写自增,自减的情况
int a=6;
a=a-2;
a=a+4;
这样,用符合赋值符更简单
int a=6;
a-=2;
a+=4;
还有以下复合赋值符
1.+= 2. -=
3.*= 4. /= 5. %=
//下⾯的操作符后期讲解
6. >>= 7. <<=
8.&= 9. |= 10. ^=
明天会有scanf和printf~