C语言编程4:复合赋值,递增递减运算符,局部变量与全局变量,本地变量,转义字符

一篇文章带你玩转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 🌺本地变量

  1. 函数的每次运行,就会产生一个独立的变量空间,在这个空间中的变量,是函数的这次运行所独有的,称作本地变量

  2. 定义在函数内部的变量就是本地变量

  3. 参数也是本地变量

4.2 🌺变量的作用域

作用域:在(代码的)什么范围内可以访问这个变量(这个变量可以起作用)

  • 局部变量作用域就是变量所在的局部范围
  • 全局变量作用域是整个工程

4.3 🌺变量的生命周期

变量的生命周期:指的是变量的创建到变量销毁之间的一个时间段。也可以这么说:什么时候这个变量开始出现了,到什么时候它消亡了的一个时间段

  • 局部变量生命周期进入作用域生命周期开始出作用域声明周期结束
  • 全局变量生命周期整个程序的生命周期。

注:本地变量的作用域和生命周期都在大括号({})内

4.4🌺 本地变量的规则

  1. 本地变量是定义在块内的

    
    1. 它可以是定义在函数的块内
    2. 也可以定义在语句的块内
    3. 甚至可以随便拉一对大括号来定义变量
    
  2. 程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了

  3. 块外面定义的变量在里面仍然有效

  4. 块面定义了和外面同名的变量则覆盖了外面的变量(块内的变量优先度更高)

  5. 不能在一个块内定义同名的变量

  6. 本地变量不会被默认初始化

  7. 参数在进入函数的时候被初始化了

五、🔷转义字符

5.1 🌺常用的转义字符

转移字符释义
\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。如:\130X

🌺C语言语法小提示:

  1. void f(void)与void f();

在传统C中,它表示f函数的参数表示未知,并不表示没有参数

  1. 逗号运算符

调用函数时的逗号跟逗号运算符字母区分

如下 => 调用函数时的圆括号内的逗号是标点符号,不是运算符

逗号:f(a,b) 逗号运算符:f((a,b))

  1. 关于 main
1. int main()也是一个函数
2. 要不要写成int main(void)? void加不加都一样,但如果上面参数都不打算加,不妨把void写下去
3. return0有人看吗? 是可以看的起作用的,返回0表示正常的运行结束了,返回任何非0的值都是错误的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/788603.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《操作系统真象还原》学习笔记:第2章——编写MBR主引导记录

2.1 计算机的启动过程 载入内存&#xff1a; &#xff08;1&#xff09; 程序被加载器&#xff08;软件或硬件&#xff09;加载到内存某个区域 &#xff08;2&#xff09;CPU 的 cs:ip 寄存器被指向这个程序的起始地址 2.2 软件接力第一棒&#xff0c;BIOS 2.2.1 实模式下的…

多模态:Nougat详解

文章目录 前言一、模型结构1. encoder2. decoder3. set 二、数据增强三、数据splitting the pages 四、实验评估repetitions during inference 五、代码1. 环境安装2. Dataset&#xff08;dataset.py&#xff09;3. Model&#xff08;model.py&#xff09; 总结 前言 科学知识…

UML建模工具Draw.io简介

新书速览|《UML 2.5基础、建模与设计实践 Draw.io是一个非常出色的免费、开源、简洁、方便的绘图软件&#xff0c;利用这款软件可以绘制出生动有趣的图形&#xff0c;包括流程图、地图、网络架构图、UML用例图、流程图等。它支持各种快捷键&#xff0c;免费提供了1000多张画图…

【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——粗配准

【GeoTransformer系列】——粗配准 1.coarse_matching1.1 概要1.2 功能1.3 超参1.4 input1.5 output2 coarse_target2.1 概要2.2 功能2.3 input2.4 output在模型部分有了初步了解之后, 接下来我们对后续的粗配准、精配准等部分依次进行解读. 本篇主要来看粗配准部分, 代码是在G…

机器人三定律及伦理分析

全世界的机器人定律并没有一个统一的标准或体系&#xff0c;但是在科学文献中&#xff0c;最广为人知的是由科幻小说家阿西莫夫提出的“机器人三定律”。本文将以这些定律为基础&#xff0c;分析现有的机器人伦理和实际应用中的问题&#xff0c;给出若干实例&#xff0c;并对相…

贴脸细看Mixtral 8x7B- 稀疏混合专家模型(MoE)的创新与推动

贴脸细看Mixtral 8x7B- 稀疏混合专家模型&#xff08;MoE&#xff09;的创新与推动 原创 一路到底孟子敬 上堵吟 2024年01月15日 20:05 美国 I. 引言 A. Mixtral 8x7B的背景和目的 • 背景&#xff1a;随着大型语言模型在自然语言处理&#xff08;NLP&#xff09;领域的广泛…

类型“RouteRecordName”上不存在属性“includes”。 类型“symbol”上不存在属性“includes”

确定 route.name 运行时是 字符串&#xff0c;强制转换 为字符串。 removeRoute(id: string) { this.dynamRoute this.dynamRoute.filter(route > !(route.name as string).includes(id)) localStorage.setItem(dynamRoute, JSON.stringify(this.dynamRoute)) delete this.t…

Linux驱动开发-03字符设备驱动框架搭建

一、字符设备驱动开发步骤 驱动模块的加载和卸载&#xff08;将驱动编译模块&#xff0c;insmod加载驱动运行&#xff09;字符设备注册与注销&#xff08;我们的驱动实际上是去操作底层的硬件&#xff0c;所以需要向系统注册一个设备&#xff0c;告诉Linux系统&#xff0c;我有…

寂静孤独的404页面源码

寂静孤独的404页面源码&#xff0c;灯光闪烁动态效果&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 寂静孤独的404页面源…

普中51单片机:中断系统与寄存器解析(六)

文章目录 引言中断流程图中断优先级下降沿中断结构图中断相关寄存器IE中断允许寄存器&#xff08;可位寻址&#xff09;XICON辅助中断控制寄存器&#xff08;可位寻址&#xff09;TCON标志控制寄存器SCON串行口控制寄存器 中断号中断响应条件中断函数代码模板电路图开发板IO连接…

Spin Image(旋转图像)

Spin Image特征描述子原理 Spin Image是Johnson于1999年提出&#xff0c;Lazebnik于2005年完善的基于点云空间分布的特征描述方法&#xff0c;其思想是将一定区域的点云分布转换成二维的Spin Image&#xff0c;然后对场景和模型的Spin Image进行相似性度量。Spin Image方法与通…

OJhelper一款帮助你获取各大oj信息的软件

项目地址 应用功能 目前应用支持&#xff1a;查询、自定义、收藏各大oj比赛信息&#xff0c;跳转比赛界面。查询各大oj的Rating分以及题量&#xff0c;查看题量饼状图。 应用环境 windows和安卓端 应用预览&#xff1a; 维护概况 后期会提供持续更新&#xff0c;具体可以…

无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。【解决办法】

问题描述 新建好一台windows虚拟机&#xff0c;两台设备网络是互通的&#xff0c;但是物理机在访问虚拟机的网络共享文件资源时&#xff0c;出现图下所示的报错&#xff1a;XXX无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。用户…

在FPGA程序中Handshake(握手)和Register(寄存器)区别

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是两种不同的通信和数据传输机制。它们各有特点和适用场景。以下是它们的区别和应用场景的详细解释&#xff1a; Register&#xff08;寄存器&#xff09; 特点&#…

RFID智能锁控系统在物流安全运输中的应用与效益分析

一、物流锁控系统现状与挑战 1.1 传统锁控系统的局限性 安全性不足&#xff1a;机械锁容易被撬开或钥匙被复制&#xff0c;导致货物在运输过程中面临被盗风险。 无法实时追踪&#xff1a;一旦货物离开发货点&#xff0c;物流公司无法实时监控货物状态&#xff0c;增加了货物…

全终端自动化测试框架wyTest

突然有一些觉悟&#xff0c;程序猿不能只会吭哧吭哧的低头做事&#xff0c;应该学会怎么去展示自己&#xff0c;怎么去宣传自己&#xff0c;怎么把自己想做的事表述清楚。 于是&#xff0c;这两天一直在整理自己的作品&#xff0c;也为接下来的找工作多做点准备。接下来…

初始化线程的4种方式

1. 继承Thread 缺点&#xff1a;无法获取线程的运算结果。 public class ThreadTest{public static void main(String[] args){Thread01 thread new Thread01();thread.start();}public static class Thread01 extends Thread{public void run(){System.out.println("当前…

基于蓝牙iBeacon定位技术的商场3D楼层导视软件功能详解与实施效益

在现代商场的繁华与复杂中&#xff0c;寻找目的地往往令人头疼。维小帮3D楼层导视软件以其创新技术&#xff0c;为顾客带来无缝、直观的跨楼层导航体验&#xff0c;让每一次商场消费都成为享受。 商场3D楼层导视软件功能服务 3D多楼层导视地图&#xff0c;商场布局一览无遗 …

数字经济时代,你有数商吗?

引言&#xff1a;随着科技的飞速发展&#xff0c;我们正步入一个全新的数字经济时代。在这个时代里&#xff0c;数据成为了新的石油&#xff0c;是推动经济增长和社会进步的关键要素。而在这个数据洪流中&#xff0c;一个新兴的概念——“数商”&#xff0c;正逐渐进入公众的视…

C#创建windows服务程序

步骤 1: 创建Windows服务项目 打开Visual Studio。选择“创建新项目”。在项目类型中搜索“Windows Service”并选择一个C#模板&#xff08;如“Windows Service (.NET Framework)”&#xff09;&#xff0c;点击下一步。输入项目名称、位置和其他选项&#xff0c;然后点击“创…