IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言初阶之变量和常量 -> 正文阅读

[C++知识库]C语言初阶之变量和常量

在C语言中,经常使用内置数据类型来创建临时变量来储存一些常量。但变量和常量分别是什么呢?

变量实际上是一块内存中的空间,而创建变量就是向内存申请一块空间。在数据类型中提到的字节数就是用该数据类型定义变量时占据空间得到的内存空间的大小。而常量指的是在程序运行过程中不会改变的量,如常量字符串,常量字符,常量整形等等。

接下来着重的描述变量。

变量的声明

声明一个变量必须指定变量的类型和创建变量的名字。

如int height;float volume;

第一个表达式就是声明了一个整形的变量,变量名是height;

第二个表达式是声明了一个单精度浮点数的变量,变量名是voiume;

但变量的取名规则也是有这一定的限制的,这个在下文会详细介绍。

变量的赋值和初始化

当程序开始执行时,某些变量会被自动赋值为0,但大多数变量不会,没有默认值且并未赋值的变量是未初始化的,强行使用未初始化的变量会出现很多意想不到的错误。赋值是给变量一个具体的值,而初始化就是在声明变量的同时进行赋值,这里建议大家在声明变量的同时进行赋值(未初始化的字符数组可能编译结果会出现错误)。初始化单精度浮点数的时候建议在常量的末尾加上f。

变量的分类及变量的生命周期及作用域

变量分为全局变量和局部变量。笼统的说,全局变量是在main函数的{}以外声明的变量,而局部变量是在main函数的{}里创建的变量。当全局变量和局部变量的名字一致时,局部变量在程序运行时会优先考虑。局部变量的作用域是变量所在的局部范围,生命周期从进入作用域开始到离开这个作用域结束。作用域简单来说就是变量的有效区间,在这个区间内变量实际存在并可以参与运算,而离开这个区间时,变量所占用的空间会释放,变量也就失去作用了。相比之下全局变量则比较强大,全局变量的作用域是整个工程,生命周期是整个程序的生命周期。但变量的生命周期和作用域并非是不能改变的,这里我们不探讨。

常量

常量大致有四种,我们一一进行介绍。

1.字面常量,如1,2,3,4,‘a’,'b',"hello world",‘\n’简单来说就是一些固定的数值。其中得常量字符串“hello world”的结尾处还有一个'\0','\0'是字符串结束的标志。

2.const修饰的常变量,注意:只是变量被修饰后具有了常属性,但本身还是一个变量。使用的方法时const 变量类型 变量名,如const int a;

声明一个数组时,[]中只能放一个常量,而const修饰的变量虽然具有常属性,但依然不是常量。另外const的功能其实是很强大的,在提高代码风格方面有这不小的功劳。再举一个指针方面的例子,const int*p和int* const p其实是不同的哦,这里不做过多的讨论,指针章节会比较系统的去讨论。

3.define定义的宏常量,使用方式是#define 常量名 常量大小(后面没有分号)

如#define N 10代表定义一个常量N,N的大小为10,这个时候的N与const的修饰的不同,确确实实是一个常量,另外#define作为预处理语句,一般在main函数运行前进行定义。顺带一提,使用vs的小伙伴的在源代码的开头放的#define ?_CRT_SECURE_NO_WARNINGS 1也是一种定义常量哦。同时,#define定义的宏一般是大写的,这是默许的一种规则,虽然小写也不会出错。

4.enum定义的枚举常量,正常情况下{是按照顺序0,1,2定义的常量},enum常量在定义以后不能改变,但是可以在赋值的时候进行一些改变。例如:

在这串代码中,在定义enum变量时,定义sum=7,使得这个枚举集合的起始值是7,而mon=1再次改变了起始值,使得tue以及后面的常量分别2,3,4,5,6,7。

标识符

在编写程序时对变量、常量、函数、及其他实体取得名字就是标识符。标识符只能由数字,字母和下划线_组成,但数字不能用来开头,且不能与关键字以及库函数等等C语言内置的实体同名。

下面列举一些关键字

auto break case char const continue default do double else enum extern float for goto if int long?

register return short signed sizeof static struct switch typedef union unsigned void volatile while

C99新增:inline restrict? ?_Bool? _Complex? ?_Imaginary

C1X新增:_Alignas? _Alignof? ?_Atomic? ?_Generic? ?_Noreturn? ? _Static_assert???_Thread_local

相信有些关键字大家有一定的认识,其他的关键字在后续的学习会慢慢涉及。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:38:17  更:2021-12-08 13:38:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:51:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码