一篇文章带你玩转C语言基础语法4:复合赋值,递增递减运算符,局部变量与全局变量,本地变量,转义字符
一、复合赋值🌿
1.1💠定义
-
赋值就是给任意一个变量或者常量赋一个值,这个值可以是一个变量,常量或者数字。
-
而复合赋值就是:把算术运算符(5个算术运算符,加 减 乘 除 取余)与赋值运算符(=)结合起来,就是复合赋值
1.2💠用法
比如像这样的: “+=”
“-=”
“=”
“/=”
“%=”
,这样的就是复合赋值。
-
这样的意思是:total+=5 ;
-
相当于: total=total+5;
-
total*=7;
-
相当于: total=total * 7;
-
total+=(sum+100)/2;
-
相当于: total=total+(sum+100)/2;
-
total /=12+6;
-
相当于:total=total /(12+6);
-
像这样的运算就是复合赋值
二、递增递减运算符🌿
2.1💠"++" “–”
“++”"–"是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量。这两个运算符分别叫做递增和递减运算符,他们的作用就是给这个变量+1或者-1
2.2💠用法
-
count++;
-
count+=1;
-
count=count+1;
count++ 用法代码示例:
int count=1,a; //初始化
a=count++; //表达式的值是count原来的值
printf("a=%d\n",a); //输出表达式的值
printf("count=%d\n",count); //输出count++之后count的值
运行结果:
a=1
count=2
–count 用法代码示例:
int count=3,b; //初始化
b=--count; //该表达式的值是count-1之后的值
printf("b=%d\n",b); //输出--count这个表达上的值
printf("count=%d",count); //输出--count运算之后count的值
运行结果:
b=2
count=2
三、局部变量与全局变量🌿
3.1💠局部变量
局部变量定义:局部变量就是定义在代码块( {} )内部的变量
3.2💠全局变量
全局变量定义:全局变量就是定义在代码块( {} )之外的变量
举个栗子:
#include <stdio.h>
int num1=30; //全局变量-定义在({})代码块之外的变量
int main()
{
int num2=10; //局部变量-定义在({})代码块之内的变量
return 0;
}
注🚨:局部变量和全局变量的名字建议不要相同——容易误会,产生bug
当局部变量和全局变量的名字相同时,局部变量优先
四、🔷本地变量
4.1 🌺本地变量
-
函数的每次运行,就会产生一个独立的变量空间,在这个空间中的变量,是函数的这次运行所独有的,称作本地变量
-
定义在函数内部的变量就是本地变量
-
参数也是本地变量
4.2 🌺变量的作用域
作用域:在(代码的)什么范围内可以访问这个变量(这个变量可以起作用)
- 局部变量的作用域就是变量所在的局部范围
- 全局变量的作用域是整个工程
4.3 🌺变量的生命周期
变量的生命周期:指的是变量的创建到变量销毁之间的一个时间段。也可以这么说:什么时候这个变量开始出现了,到什么时候它消亡了的一个时间段
- 局部变量的生命周期:进入作用域生命周期开始,出作用域声明周期结束。
- 全局变量的生命周期: 整个程序的生命周期。
注:本地变量的作用域和生命周期都在大括号({})内
4.4🌺 本地变量的规则
-
本地变量是定义在块内的
1. 它可以是定义在函数的块内 2. 也可以定义在语句的块内 3. 甚至可以随便拉一对大括号来定义变量
-
程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了
-
块外面定义的变量在里面仍然有效
-
块面定义了和外面同名的变量则覆盖了外面的变量(块内的变量优先度更高)
-
不能在一个块内定义同名的变量
-
本地变量不会被默认初始化
-
参数在进入函数的时候被初始化了
五、🔷转义字符
5.1 🌺常用的转义字符
转移字符 | 释义 |
---|---|
\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。如:\130X |
🌺C语言语法小提示:
- void f(void)与void f();
在传统C中,它表示f函数的参数表示未知,并不表示没有参数
- 逗号运算符
调用函数时的逗号跟逗号运算符字母区分
如下 => 调用函数时的圆括号内的逗号是标点符号,不是运算符
逗号:f(a,b) 逗号运算符:f((a,b))
- 关于 main
1. int main()也是一个函数
2. 要不要写成int main(void)? void加不加都一样,但如果上面参数都不打算加,不妨把void写下去
3. return的0有人看吗? 是可以看的起作用的,返回0表示正常的运行结束了,返回任何非0的值都是错误的