C语言从头学06——变量

       变量可以理解为是一块内存的名字。通过名字可以获取、改变里面存储的值。由于值是变化的,所以称为变量。
1、变量名
       变量名不能随意起。变量名只能由字母(包括大写和小写)、数字和下划线( _ )组成,而且数字不能放在最前边。还有变量名的长度在不同的系统中有不同的限制,不能超过限度(长度问题不必考虑,我们一般不会超过)。要注意C语言是区分大小写的,比如MyName和myName计算机会看成是两个变量。在C语言中有许多专门含义 ( 比如 int、double ) 这样的词,还有代表命令 ( 比
如 return、include ) 等,它们都是系统专用的,我们就不能用作变量名了。另外,两个下划线开头的变量名,以及一个下划线 + 大写英文字母开头的变量名,都是系统内码中使用的,我们也不能起这样的变量名。至于起什么样的变量名合适时间长了会悟出来的。另外现在计算机编辑器都有检查功能,如刚使用了一个新变量名后马上就出现报错的地方,大概率和变量名有关,改了就是。
2、变量的声明
       在C语言中,变量是要先声明再使用;否则,未经声明直接使用系统会报错。
       声明变量的方式:
       单个变量的声明:int myCount;  // 声明一个int类型的名为myCount的变量
       几个变量的声明:int a1,a2,a3; // 声明三个用逗号隔开的int型变量a1,a2,a3(当然一个一个声明也无不可)
       所谓声明变量,就是在内存中为变量分配一块与大小与类型要求一致的内存空间。这里先简单介绍几个常用变量类型:
      int 整数类型
      float 浮点类型(小数类型)
      char 字符类型
      double 双精度浮点类型
3、变量赋值
      变量声明后,我们可以为其赋值,形式:变量=值;例如前面声明的myCount如果要为其赋值100,可以:myCount=100;
      变量赋值可以与声明放在一起进行,大多数情况都是这样做的。如:int x=1; 再如:int a1=1,a2=2,a3=3;
      C 语言有左值和右值的概念。左值是可以放在赋值运算符左边的值,一般是变量;右值是可以放在赋值运算符右边的值,一般是一个具体的值。编程过程中报错经常会提到这两个概念。
4、变量的作用域
      作用域是指变量生效的范围,也就是在哪个范围内可以使用这个变量。C语言变量一般分两种,一种是文件作用域,另一种是块作用域。
       文件作用域:在源码顶层声明的变量,一般是紧跟在包含头文件语句后声明(不能放到main函数中)。这种声明从声明位置起一直到文件结束都有效,这种变量我们往往称为全局变量。
       块作用域:块就是语句块,就是用一对"{ }"括起来的语句范围。凡在这个块里声明的变量,只能在这个块内使用,出了块就看不到了,可以理解成出了块,这个变量就被操作系统收回销毁了。如果一个大块里还套着小块,那么小块里是可以使用大块里的变量的。
      关于语句块,有些特殊情况虽没有一对"{ }",但也构成一个语句块,可以理解为省略了大括号。举个例子:
      int i = 1000;
      for (int i = 0; i < 10; i++) { printf("i=%d\n",i); } //输出结果:输出i=0 i=1 。。。i=9
      printf("i=%d\n",i); //输出结果:i=1000
      从上面的例子看,第一个语句我们声明了i并赋值1000,在for循环的括号里又声明了i=0,首先相同变量重复声明时会报错的,其次i在for循环里被重新复赋值了,但第三句输出的结果仍是1000.这是为什么呢?原因就是for循环这个语句本身就构成语句块,而大括号被省略了。这也提醒我们,当大括号可加可不加时,为了逻辑清楚不妨加上。
      还是说上面的例句,如果for循环的括号里i不重新声明,直接使用可以吗?回答可以。可以理解成是"{ }"中套着的"{ }",当然最后输出的值也不再是1000,因为在for循环里i又进行了多次赋值。

      关于变量的内容先学习这么多,祝大家共同进步!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell脚本基础(if/else结构)

命令是双向选择语句&#xff0c;当用户执行脚本时如果不满足if后的表达式也会执行else后的命令&#xff0c;所以有很好的交互性。其结构为&#xff1a; if expression1 then command … command else command … command fi vim ifelse_exam.sh #ifelse_exam.sh #!/bin/bashec…

浙江省环境工程专业职称资格评价条件

浙江省环境工程专业职称资格评价条件评审文件链接浙江省生态环境厅 浙江省人力资源和社会保障厅关于印发《浙江省生态环境专业工程师、高级工程师和正高级工程师职务任职资格评价条件&#xff08;试行&#xff09;》《浙江省生态环境专业正高级工程师职称评审实施方案&#xff…

前端面试题日常练-day13 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末。 1. 下面哪个方法可以用于获取数组的长度&#xff1f; a) lengthOf()b) sizeOf()c) count()d) length()2. JavaScript中的NaN表示什么意思&#xff1f; a) 未定义 b) 无效数字 c) 零 d) 负无穷大3.…

python读取excel数据写入mysql

概述 业务中有时会需要解析excel中的数据&#xff0c;按照要求处理后&#xff0c;写入到db中&#xff1b; 用python处理这个正好简便快捷 demo 没有依赖就 pip install pymysql一下 import pymysql from pymysql.converters import escape_string from openpyxl import loa…

前端之电力系统SVG图低代码

其实所有的图形都是由点&#xff0c;线&#xff0c;面组成的。点线面可以组成一个设备。下面就简单讲讲点线面是怎么画的吧 对于线&#xff0c;可以用path <g><path:d"M ${beginX},${beginY} L ${endX},${endY}":stroke-width"lineWidth":strok…

【漏洞复现】Secnet-智能路由系统弱口令

0x01 产品简介 Secnet安网智能AC管理系统是广州安网通信技术有限公司(简称“安网通信”)的无线AP管理系统 0x02 漏洞描述 攻击者可直接利用弱口令登录系统 0x03 搜索语法 fofa: title"安网-智能路由系统" || title"智能路由系统" || title"安网科…

鸿蒙应用布局ArkUI【基础运用案例】

布局基础运用案例 平级导航的复合网格视图 平级导航的复合网格视图常出现在同时展示多种不同内容的界面。 例如&#xff0c;市场类应用作为典型的平级导航&#xff0c;其首页不同板块采用了不同布局能力。 标题栏与搜索栏&#xff1a;因元素单一、位置固定在顶部&#xff0c…

打造销售爆款利器!淘宝商品评论电商API接口全方位解析

无论是实体店还是电商平台&#xff0c;通过有效的销售推广手段&#xff0c;提升产品销量都是商家追求的目标。而淘宝商品评论电商API接口就是一种非常有效的工具&#xff0c;它能够帮助商家获取、分析并利用商品评论信息&#xff0c;为销售策略提供有力支持。联讯数据将全面解析…

数据库-分布式数据库与集中式数据库

用“小笼包”和“大包子”来比喻分布式数据库和集中式数据库&#xff08;如Oracle集群&#xff09;是非常形象的。 分布式数据库可以看作是一笼小笼包&#xff0c;每个小笼包&#xff08;节点&#xff09;都可以独立地存储和处理一部分数据。当你需要增加处理能力或存储容量时…

100个 Unity小游戏系列 - 第二个Unity实现转盘核心逻辑解释

一、背景 为了颜色unity 实现转盘抽奖的核心玩法&#xff0c;在这里ui简单实现&#xff0c;主要讲解逻辑部分 二、制作流程 2.1、创建一个image&#xff0c;选择我们的转盘背景图&#xff1b; 2.2、创建一个空物体&#xff0c;位于转盘的正中心&#xff0c;因为我们的转盘指针…

java字符型常量和字符串常量的区别?

在Java中&#xff0c;字符型常量和字符串常量是两种不同的常量类型&#xff0c;它们在形式、含义和内存占用等方面存在显著区别。理解这些区别对于掌握Java的基本概念和编写高效代码至关重要。 形式 字符常量&#xff1a;由单引号 引起的一个字符。 char letter A; 字符串常…

数字孪生GIS数据获取与处理(未完回头再整理)

高德矢量 http://webrd01.is.autonavi.com/appmaptile?x{x}&y{y}&z{z}&langzh_cn&size1&scale1&style8 高德影像 https://webst01.is.autonavi.com/appmaptile?style6&x{x}&y{y}&z{z} 腾讯矢量 http://rt0.map.gtimg.com/realtimerender…

第33次CSP认证Q3:化学方程式配平

&#x1f344;题目描述 为了配平一个化学方程式&#xff0c;我们可以令方程式中各物质的系数为未知数&#xff0c;然后针对涉及的每一种元素&#xff0c;列出关于系数的方程&#xff0c;形成一个齐次线性方程组。然后求解这个方程组&#xff0c;得到各物质的系数。这样&#x…

MySQL---JSON的用法讲解

一、概述 1.1MySQL的JSON概述 JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前&#xff0c;只能通过字符类型&#xff08;CHAR&#xff0c;VARCHAR 或 TEXT &#xff09;来保存 JSON 文档。 MySQL 8.0版本中增加了对JSON类型的索引支持。可以使用CREATE INDEX语句创建JSO…

百度百舸 AIAK-LLM 的大模型训练和推理加速实践

本文整理自 4 月 16 日的 2024 百度 Create 大会的公开课分享《百舸 AIAK-LLM&#xff1a;大模型训练和推理加速实践》。 今天要分享的主题是 AI Infra 相关的内容&#xff0c;主要内容分为四部分。 首先和大家一起讨论大模型给基础设施带来的挑战。第二部分则是向大家介绍一个…

[蓝桥杯 2021 国 ABC] 123(java)——前缀和,思维

目录 题目 解析 代码 这么久了&#xff0c;我终于能不看别人代码完整写出来了&#xff0c;呜呜呜。虽然过程也是很曲折。 题目 解析 这个题&#xff0c;找其中数列的规律&#xff0c;1,1,2,1,2,3,1,2,3,4&#xff0c;...&#xff0c;因此我们把拆分成行列&#xff0c;如下…

MT3036 第一节离数课后

思路&#xff1a; 这道题与之前的表达式求值题目不同的是&#xff0c;有not这个单目运算符。而且如果表达式错误&#xff0c;要输入error。 把true和false成为操作数&#xff0c;把and or not成为运算符。 考虑error的情况&#xff1a; 1.and 和 or是双目运算符&#xff0c…

【Flask项目结构搭建】

项目结构搭建 创建一个Flask项目 第一步 先创建一个python Package 起名叫做app第二步 把static文件夹和template文件夹放入app文件夹中第三步 创建settings.py配置文件 """ ENV "development" DEBUG True SQLALCHEMY_DATABASE_URI"mysql…

小程序蓝牙连接ESP32通信(可直接拿来用)

小程序中的蓝牙能力 在小程序中&#xff0c;要使用蓝牙能力&#xff08;Beacon 除外&#xff09;必须首先调用 wx.openBluetoothAdapter 初始化蓝牙适配器模块&#xff0c;其生效周期为调用 wx.openBluetoothAdapter 至调用 wx.closeBluetoothAdapter 或小程序被销毁为止。只有…