【C语言】变量与常量

一、变量的定义与名称

变量定义的一般形式:<数据类型名称><变量名称>;

int price=0;

•这一行,定义了一个变量。变量的名字是price,类型是int,初始值是0。

•变量是一个保存数据的地方,当我们需要在程序里保存数据时,就需要一个变量来保存它。用一个变量保存了数据,它才能参与到后面的计算中。

 变量名称

•变量是一种“标识符”

•标识符构造规则:只能由字母、数字和下划线组成,数字不能出现在首位,C语言的关键字/保留字不可以用作标识符。

在变量定义上,ANSI C与C99有一点不同:

ANSI C只能在代码开头的地方定义变量

int price;
int change= 0;
pritf("请输入金额(元):");
scanf("%d",&price);
change=100-price;

 而C99可以在代码中间定义变量

int price;
pritf("请输入金额(元):");
scanf("%d",&price);
int change=100-price;

二、变量的赋值和初始化

C语言中赋值与初始化的差异并不大,但在其他语言,如C++这两种之间差异会比较大。

变量赋值

•price=0;

•这是个赋值语句,“=”是赋值运算符,表示将“=”右边的值赋给左边的变量。

变量初始化

<数据类型名称><变量名称>=<初始值>;

•int price=0;

•int amount=100;

•组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,如:

  int price=0,amount=100;

变量类型

C语言是一种有类型的语言。所有变量在使用之前必须定义或声明,所有变量必须有具体的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。

三、常量的定义(const int XX)

 int change=100-price;

•100直接写在程序里,我们称作直接量。

•更好的方式,是定义一个常量:

const int AMOUNT=100;//C99才有的用法,常量往往用大写单词
int change=AMOUNT-price;

•const是一个修饰符,加在int的前面,用来给这个变量加一个const(不变的)的属性。这个const的属性表示这个变量的值一旦初始化,就不能再修改了。

四、除了const, 定义常量的方式

4.1 预处理指令#define,定义常量

一般形式:#define 常量名 常量值

•#define PI 3.14159,在之后的代码中可以直接使用PI来代表3.14159。

•#define定义常量与const定义常量是不同的。

使用const定义的常量在编译过程中会进行类型检查,而使用#define定义的常量只是进行简单的文本替换。因此,建议在C语言中使用const关键字来定义常量。

4.2 enum关键字,定义枚举类型常量

一般形式:enum 枚举名 {常量1, 常量2, ...}。

•enum Weekday{MON,TUE,WED,WHU,FRI,SAT,SUN},在之后的代码中可以使用Weekday类型来表示一周的每一天。

4.3 const关键字与指针结合,定义指针常量

一般形式:const 数据类型 *指针变量名 = 内存地址。

•const char *message="Hello World",这样定义的指针变量message是一个指向常量字符的指针。

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

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

相关文章

CentOS7集群配置免密登录

准备工作 提前开启三台虚拟机hadoop102、hadoop103,hadoop104,关于三台虚拟机的安装可以参考&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/136010108 配置免密登录 一、分别修改三台机器的hosts,配置主机映射关系 vim /etc/hosts 文件中输入以下内容&#xf…

利用Pybind11封装Python版的WiringPi!

原版的WiringPi是一个用于树莓派的GPIO库&#xff0c;用C语言开发&#xff0c;仓库地址&#xff1a;https://github.com/WiringPi/WiringPi。该库允许用户以编程方式访问和控制树莓派的GPIO引脚。而随着Python在嵌入式设备上的快速发展&#xff0c;其对底层引脚的操作也变得越来…

【人工智能】聊聊Transformer,深度学习的一股清流(13)

嘿&#xff0c;大家好&#xff01;今天我们来聊一聊深度学习领域的一位“大明星”——Transformer模型。这个模型的提出可不得了&#xff0c;让自然语言处理领域焕发了新生。 在深度学习领域&#xff0c;Transformer模型架构的引入标志着一场革命&#xff0c;它改变了自然语言处…

linux系统定时任务管理

crontab使用 一、crontab简介 crontab 这个指令所设置的工作将会循环的一直进行下去&#xff01;可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外&#xff0c;亦可编辑 /etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服…

【开源】基于JAVA+Vue+SpringBoot的假日旅社管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿评论4.3 查询民宿新闻4.4 新建民宿预订单4.5 查询我的民宿预订单 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的假日旅社…

《小狗钱钱》读书笔记——如何看待金钱

目录 前言 作者 经典摘录 1、 了解致富的规律&#xff0c;一开始&#xff0c;必须明确金钱对你的意义 2、 梦想储蓄罐和梦想相册 3、认真去找机会 4、主人公吉娅的财富路径 5、注意财富积累本质 写在最后 前言 尽管[ 智慧是无法传授的], 但读书可以启发思路&#xff0…

30岁还一事无成,怎么办?

前些日子&#xff0c;知乎有一个话题&#xff0c;特别火。 原话是&#xff1a;30岁&#xff0c;如果你还没当上管理层&#xff0c;或者在某个领域取得成就&#xff0c;那你一辈子基本也就这样了。 这句话一出&#xff0c;戳中了许多人的软肋&#xff0c;一时间群情哗然。 理由是…

Electron基本介绍

Electron基本介绍 Electron 官方网站&#xff1a;https://www.electronjs.org/zh/ Electron安装方法&#xff1a;npm install electron -g 全局安装 Electron简介&#xff1a;Electron提供了丰富的本地&#xff08;操作系统&#xff09;API&#xff0c;使你能够使用纯JavaScr…

golang设置

golangci-lint 代码检查工具的集合&#xff0c;聚集了多种 Go 代码检查工具&#xff0c;如 golint 会自动查找项目中的 .golangci.yml 配置文件 会检查代码中潜在常见问题以及代码风格问题 # 文档&#xff1a;https://golangci-lint.run/ # https://github.com/golangci/golang…

leetcode——滑动窗口题目汇总

本章总结一下滑动窗口的解题思路&#xff1a; 在字符串中使用双指针 left 和 right 围成的一个左闭右开的区域作为一个窗口。不断将 right 向右滑动&#xff0c;直到窗口中的字符串符合条件。此时将 left 向右滑动&#xff0c;直到窗口中的字符串不符合条件&#xff0c;期间需…

Django中的SQL注入攻击防御策略

Django中的SQL注入攻击防御策略 SQL注入是一种常见的网络安全威胁&#xff0c;可以导致数据库被非法访问和数据泄露。本文将介绍在Django框架中防止SQL注入攻击的关键方法&#xff0c;包括使用参数化查询、使用ORM、进行输入验证和使用安全的编码实践。 SQL注入是一种利用应用程…

SpringBoot:多环境配置

多环境配置demo代码&#xff1a;点击查看LearnSpringBoot02 点击查看更多的SpringBoot教程 方式一、多个properties文件配置 注意&#xff1a;创建properties文件,命名规则&#xff1a;application-&#xff08;环境名称&#xff09; 示例&#xff1a;application-dev.proper…

循环神经网络(RNN)简介与应用

循环神经网络&#xff08;RNN&#xff09;简介与应用 一、RNN基本概念二、RNN原理解析2.1 RNN网络结构RNN网络主要组件输入层(Input)&#xff0c;隐藏层(Hidden State)&#xff0c;输出层(Output)循环单元(Recurrent Unit)权重参数(Weights)和偏置项(Bias) RNN的数据流向时间步…

算法刷题day10

目录 引言一、最长上升子序列二、地宫取宝三、波动数列 引言 今天是大年三十&#xff0c;提前祝大家新的一年天天开心&#xff0c;事事如意&#xff0c;过年把身体精神修养好后&#xff0c;年后继续朝着目标奋斗&#xff0c;然后加油吧&#xff01; 一、最长上升子序列 标签&…

Android截屏方法

// 截屏方法private void getSnapshot() {wView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));wView.layout(0, 0, wView.getMeasuredWidth(), wView.getMeasuredHeight(…

U3D记录之FBX纹理丢失问题

今天费老大劲从blender建了个模型&#xff0c;然后导出进去unity 发现贴图丢失 上网查了一下 首先blender导出要改设置 这个path mode要copy 然后unity加载纹理也要改设置 这里这个模型的纹理load要改成external那个模式 然后就有了&#xff0c;另外这个导出还有好多选项可…

Python判断列表A中是否有元素出现在了列表B中

目录 1. 问题重述2. 问题求解2.1 暴力法2.2 哈希表法2.3 集合法 3. 总结 1. 问题重述 给定两个列表 A A A 和 B B B&#xff0c;它们的长度分别为 n n n 和 m m m。我们要检查的是&#xff0c;是否存在 x ∈ A x\in A x∈A&#xff0c;使得 x ∈ B x\in B x∈B。 以下介…

Java项目maven打包的包名设置(finalname标签的使用)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

C#用Array类的Reverse方法反转数组中元素

目录 一、Array.Reverse 方法 1.重载 2.Reverse(Array, Int32, Int32) 3. Reverse(Array) 4.Reverse(T[]) 5. Reverse(T[], Int32, Int32) 二、实例 1.Array.Reverse 方法4种重载方法综合实例 2.Reverse(Array)方法的实例 一、Array.Reverse 方法 反转一维 Array 或部…

wireshark分析数据包:追踪流

打开追踪流的界面 方法 1 方法 2 选中数据包&#xff0c;右键弹出菜单 说明&#xff1a; 流内容的显示顺序和它在网络上出现的顺序相同。不可打印的字符被点代替。从客户端到服务器的流量被标记为红色&#xff0c;而从服务器到客户端的流量被标记为蓝色。这些颜色可以通过下…