当前位置: 首页 > article >正文

【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.kler.cn/news/233399.html

相关文章:

  • 【Qt】常见问题
  • 2.7日学习打卡----初学RabbitMQ(二)
  • springboot173疫苗发布和接种预约系统
  • 3 scala集合-Set
  • 面试经典150题 -- 栈(总结)
  • vue3+vite+ts 配置commit强制码提交规范配置 commitlint
  • 力扣刷题之旅:进阶篇(三)
  • Java异常的处理 try-catch-finally
  • Python 字符串模块
  • “OLED屏幕,色彩绚丽,画面清晰,让每一帧都生动无比。“#IIC协议【下】
  • JavaWeb02-MyBatis
  • QCoro: Qt C++ 20 协程库介绍
  • 基于图像掩膜和深度学习的花生豆分拣(附源码)
  • 【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇)
  • uni-app x,一个纯原生的Android App开发工具
  • 【力扣】复写零,栈 + 双指针法
  • 张楠辞任抖音集团CEO;东方甄选将开服饰号;小红书新增“附近”一级入口;华为分红770亿元
  • Vue3中路由配置Catch all routes (“*“) must .....问题
  • 通过Harbor构建docker私服仓库
  • 前端使用pdf.js进行pdf文件预览的第二种方式:Viewer.html
  • Quartus工程的qsf配置约束文件介绍
  • 【C语言】一道相当有难度的指针某大厂笔试真题(超详解)
  • 106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)
  • RTE2023第九届实时互联网大会:揭秘未来互联网趋势,PPT分享引领行业新思考
  • Python基础篇_修饰符(Decorators)【下】
  • 常用的正则表达式
  • 一条 SQL 查询语句是如何执行的
  • 探索Spring Validation:优雅实现后端数据验证的艺术
  • 数据结构-->线性表-->单链表
  • JAVA面试题12