【初识C语言(1)】变量和常量

news/2024/11/17 17:51:06/

文章目录

  • 1. 局部变量和全局变量
  • 2. 变量的作用域和生命周期
  • 3. 常量

  • 生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
  • 有些值是可变的(比如:年龄,体重,薪资)。
  • 不变的值,C语言中用常量的概念来表示,会改变的值C语言中用变量来表示。

1. 局部变量和全局变量

#include <stdio.h>int b = 20;//全局变量int main()
{int a = 10;//局部变量return 0;
}

局部变量

  • 大括号内部定义的变量称之为局部变量

全局变量

  • 大括号外部定义的变量称之为全局变量

局部与全局的优先级

  • 局部变量与全局变量可以使用同一个变量名。

  • 当全局变量和局部变量公用一个变量名时,局部变量优先被使用。

在这里插入图片描述

2. 变量的作用域和生命周期

变量的作用域

变量可以使用的范围称之为变量的作用域。

  • 局部变量的作用域是变量所在的局部范围(变量所在的大括号内部)。
  • 全局变量的作用域是整个工程。

在这里插入图片描述
在这里插入图片描述

变量的生命周期

变量的生命周期是指变量的创建爱到变量的销毁的一个时间段。

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。
    • 在整个程序还存在时,全局变量都可以被使用。
#include <stdio.h>int main()
{{//进入这个大括号时变量a生命周期开始,变量a可以使用int a = 10;printf("a = %d\n", a);}//出去这个大括号时a生命周期结束,变量a无法使用printf("a = %d\n", a);return 0;
}

作用域与生命周期的区分

  • 作用域约等于生命周期,但两者不是一个概念;
  • 变量的作用域决定了变量的生命周期;
  • 作用域属于空间概念,为变量可以使用的范围。生命周期属于时间概念,为某变量生效以及结束的时间。

3. 常量

固定不变的值,C语言中通常用常量来表示。

C语言常量分类

  1. 字面常量
  2. const 修饰的常变量
  3. #define 定义的标识符常量
  4. 枚举常量

1. 字面常量

  • 直接写出的数字就是字面常量;
    • 写一个1出来他就是固定的数字1,不能被改变。
  • 用单引号引起的的字符属于字符常量;
  • 用双引号引起的字符串称为字符串常量。
//字面常量:直观的用肉眼就能知道这些是什么东西#include <stdio.h>
int main()
{30;//数字常量'w';//字符常量"abc";//字符串常量return 0;
}

2. const 修饰的常变量

  • 一般情况下,普通的变量被赋予一个值之后,该变量还是能够被修改的;

在这里插入图片描述

  • 假设希望某个变量就是一个固定的值,不允许别人去动它,这个时候就要用 const 将该变量限制起来即可。

在这里插入图片描述

  • 在 C 语言中,被 const 修饰的变量本质上是个变量,但是不能直接被修改,有着常量的属性。

3. #define 定义的标识符常量

  • 通常将一个标识符固定为一个值,之后一旦出现该标识符时,自动将该标识符替换为固定的某个值。
  • 通常情况下,#define 定义的标识符都采用大写与变量来进行区分。

在这里插入图片描述

  • #define 定义的标识符常量的值是无法被修改的。

在这里插入图片描述

4. 枚举常量

枚举关键字 枚举类型名
{枚举成员1,枚举成员2,枚举成员3
};
  • 使用 enum(枚举关键字),可以创建一个新类型并指定它可以具有的值(实际上,enum常量是Int类型,因此,只要能使用int类型的地方,就可以使用枚举类型)。

  • 枚举顾名思义就是一 一列举,把某些事物的可能取值一 一列举出来。

enum Day//命名为星期的枚举类型
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};
enum Sex//性别
{MALE,FEMALE,SECRET
}enum Color//颜色
{RED,GREEN,BLUE
};
  • 定义类枚举类型之后,就可以使用枚举类型来创建一个枚举类型变量。
    • c 是一个关于颜色类型的变量,以后给 c 赋值的时候,只能赋红绿蓝这三者之一。这些可能取值都是有值的,默认从0开始,依次递增1。

在这里插入图片描述

  • 在定义的时候,也是可以给枚举成员赋初始值的;
    • 当某些时候需要用到大量相同类型的常量的数据的时候,既可以用 #define 来定义也可以用枚举常来来定义。
    • 例:菜市场蔬菜的价格属于相同类型的数据,如果用 #define 就要写一堆的 #define 那叫一个又臭又长,此时enum看着就很舒服了。
#include <stdio.h>//用#define 来定义这种那是相当的麻烦
#define CABBAGE 3
#define TOMATO 5
#define CARROT 4
#define POTATO 2
//.....enum vegetable //命名为蔬菜的枚举类型
{CABBAG = 3,TOMATO = 5,CARROT = 4,POTATO = 2
};int main()
{return 0;
}

http://www.ppmy.cn/news/583511.html

相关文章

修改账户密码信息

import java.util.Scanner;public class miMa {String account "mi";String password "123456";public void accountInfo() {System.out.println("账号:" account "\t密码:" password);}public static void main(String[] args) …

CSDN 客服体验经历

目录 1. 时间2. 地点3. 人物4. 起因5. 经过6. 结果 1. 时间 2022年08月17日 下午 13: 30 2. 地点 CSDN 长沙 3. 人物 客服老师、本人以及一起体验的小伙伴 4. 起因 CSDN 为了让每一位开发人员真正了解用户的需求&#xff0c;公司特意为每个人安排了一次2小时的客服体验。…

2016域服务器自助修改密码,自助密码重置工具

自助密码重置工具 重置域用户遗忘的登录密码是一个非常普遍的瓶颈,帮助台技术人员不得不例行进行处理。且必须在数分钟内处理密码重置工单或重置用户遗忘的登录密码,以避免出现员工停机时间和生产效率的损失。据估计,至少40%的帮助台工单与密码重设有关,每处理一个密码更改…

智能客服

智能客服 智能客服设计整体框架 智能客服根据任务类型可以分为&#xff1a;咨询问答、任务型多轮对话、闲聊客服。 智能客服原理 咨询问答 参考链接&#xff1a; QA机器人的本质是&#xff1a;假设用户提了一个问题Q&#xff0c;QA机器人需要从已有的QA数据库中寻找最合适的…

海康摄像头不记得登陆密码了怎么办?2020年联系人工客服最新版解答方案

微信关注海康威视客户服务公众号,点击“贴心服务”的“密码重置” 填写一些基础信息&#xff0c;就会有下载地址显示&#xff0c;然后填写邮箱&#xff0c;就会发送到你的邮箱里面 这个时候打开软件&#xff0c;点击忘记密码&#xff1b; 然后点击二维码&#xff0c;微信公众…

在线客服功能介绍-了解常见在线客服系统的功能点

在线客服&#xff0c;通常我们说这个基本都是指IM客服(区分于电话客服等)。“客服”表示了系统的使用人群或系统功能&#xff0c;“在线”说明了交互方式。我们在日常生活中多多少少都有用到或接触过在线客服&#xff0c;比如&#xff1a; ​ 在生活中我们可能会遇到各种各样的…

找密码

在一个古堡的大门上有5行字符。其中隐藏着打开大门的密码。密码共有4位数字&#xff08;0到9&#xff09;。小明发现了一种找密码的方法&#xff1a;最后一行中的字符在第一行字符中出现的总次数是密码的第一个数字&#xff0c;依此类推。输入数据保证每行得到的数字在0到9之间…

账号密码

WebServlet("/login") public class LoginController extends HttpServlet { Override protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding(“UTF-8”); StringBui…