咕咕王小谢的C语言之路————第一章 初遇C语言 第三集 变量与常量
小谢同学:咕咕咕......
C语言:咕你个头呀,这段时间你去哪里啦?究极鸽王,詹姆斯韦伯望远镜都没你能鸽...
小谢同学:呜呜呜,别骂了,这段时间,我忙着和老师做项目还有准备期末考试了,让大家久等了!骚瑞啦!
承接上集!我们学习了数据类型的知识,接下来,小谢同学来介绍变量与常量。
首先,从字面意思可以知道变量就是变化的量,比如说年龄、体重等。而常量则是不变的量,比如说性别、身份证号码等。
本集介绍分为以下这几个内容:
3.1 定义变量的方法
3.2 变量的分类
3.3 变量的使用
3.4 变量的作用域和生命周期
3.5 常量
3.1 定义变量的方法
在定义变量的时候,我们通常会用类型+变量来定义变量,例如:
int main()
{int age = 18;char ch = 'x';float a = 37.7freturn 0;}
不难发现,这些变量都具有这种特征。不过有些同学会说:“为什么你定义变量要初始化?我们老师说可以不用......”
其实,在创建变量的时候,可以不用初始化变量,只是为了以后我们在分析代码的时候能够更加好分析代码。如果一个局部变量没有初始化,那么,它在后面运行的时候,就会是随机值,会导致后面的代码无法预测。因此,对于初学者来说在变量创建时,最好在创建变量时初始化变量哦!
3.2 变量的分类
变量一共分成两大种,他们分别是局部变量和全局变量。
局部变量:代码块内(大括号内)定义的变量。
全局变量:代码块外(大括号外)定义的变量。
在这里,咕咕王小谢给大家补充一点:在main函数里面的变量一定是局部变量,但是局部变量不一定在main函数里面!你品你细品!
为了大家能够更加深入的了解这两个定义,现在,我来举一个例子来引出一个很重要的性质,例子如下:
#include <stdio.h>
int a = 0;
int main()
{int a = 10;printf("%d\n",a);return 0;
}
大家觉得这个代码运行出来是多少呢?不能运行?0?10?
来!上号!
不难发现,在VS上面运行发现运行出来的是10。但是这又是为什么呢?
欸~,马上就告诉你!
首先,不容置疑的是这个代码是没有什么问题的,只不过这是一个规则罢了——当局部变量和全局变量同名时,局部变量会优先使用!
但是,如果当printf函数在“int a =10;”前面时,这个时候打印出来的a则是0,不过当你用VS的调试功能((Fn)+F10)时,你又会发现当这个函数的调试完之后,a变量的值又是10。
3.3 变量的使用
在介绍变量的使用之前,我们来看一个代码先!代码如下:
#include <stdio.h>
int main()
{int a = 10;int b = 57;int sum = 0;scanf("%d %d",&a,&b);printf("这两个数的和为");sum = a + b;printf("sum = %d",sum); return 0;
}
在这里,我先介绍一下头文件——stdio.h
他的英语全称为standard input output (标准输入输出流)。
在调用函数的时候,我们总是要用到它!
而在这串代码里面有一个新的函数——scanf
没错,他就是我们经常说的输入函数,和printf是一对hxd,在使用这个函数的时候,我们通常以这个格式去使用:
假设这里要输入两个整型的变量a、b,则该函数为
scanf("%d %d",&a,&b);
前面双引号里面的是变量的输入格式,且输入格式的数量和要输入的变量个数一致,同时要注意,在每一个变量的输入格式之间,用一个空格隔开,最后在双引号外面输入变量名称,每一个变量名称用逗号隔开,同时,变量前面用取地址操作符“&”
按下ctrl +(Fn)+F5后,输入两个数字,便可得到这两数的和。
在这里,要给大家一些小提示:我用的编译器较老——VS2010版的,这个版本在设置变量的时候一定得放在最前面,不然会报错。
很明显,我们发现事实果然如此,那是因为C99标准之前有一个规定:变量要创建在当前代码块的最前面!而C99标准之后就是哪里需要变量就在哪里定义。
细心的小伙伴都发现了我在每次写代码的时候都在最前面加上了这样一行字:
#define _CRT_SECURE_NO_WARNINGS 1
为什么要加这行字呢?
那是因为如果不加这行字,VS编译器就会觉得scanf那样的函数以为是不安全的,于是就会让你用它自己自带的函数(这些函数是他们认为安全的函数,并且这些函数的移植性不好,只能在VS编译器下工作)可能会发出警告甚至会不给运行,但是,我们都知道scanf函数是C语言中通用且移植性好。因此,为了解决这一问题,我们就得写上这么一句话,来让编译器觉得我们用的函数是安全的。
你看这个代码没有那句话后,马上见效了!
3.4 变量的作用域和生命周期
变量的作用域:一个用来限制变量起作用的范围。
变量的生命周期:变量在创建出来到被销毁的一个时间段。
这两个还是挺容易混淆的,大家要注意啦!一个是时间段,一个是作用的范围,不要认为当经历变量从创建到出了这个作用范围(作用域)的这个过程的时间,就是一个生命周期,如果他前面有一个static修饰呢,那么,这时就不能认为当经历变量被创建后到出了作用域的这个过程的时间就是一个生命周期了,这时就会让大家能够对这两个概念有更深刻的理解啦!有兴趣的可以先去看看哈!后面会介绍的!
对于局部变量来说作用域是变量所在的局部范围(代码块内)!而它的生命周期则是进入作用域生命周期开始,出作用域生命周期结束(static修饰的变量另作考虑!)。
而对于全局变量的作用域是整个工程,而它的生命周期是整个程序的生命周期。
3.5 常量
C语言常量被分为以下四种:
1. 字面常量
2. const修饰的常变量
3. #define定义的标识符常量
4. 枚举常量
1. 字面常量
int main()
{3;2345;return 0;
}
这些单独写的一些数字就是一些字面常量!
2. const修饰的常变量
有些小伙伴就会问:“啊~?什么是常变量?又有常量又有变量?”
哈哈,其实并不是,来请看下面这串代码就明白了!
你看,在这个代码里,他写着“应输入常量表达式”,可以看出这个变量a并不是常量表达式,因此我们可以断定这还是一个变量,那么这个const修饰的变量到底是什么样的变量呢?
const修饰的是常属性的变量,实质上还是一个变量!只是在语法层面限制了变量的变化而已!
但是,在C99之后,就有上面那个图的编程语法了——他被命名为变长数组,允许变量来指定数组的长度。
3.#define定义的标识符常量
来,上代码!
int main()
{#define max 10int arr[max] = {0};return 0;
}
不难发现,max是一个常量。
#include <stdio.h>
enum Sex
{MALE,FEMALE,SECRET
};
int main()
{printf("%d\n",MALE);printf("%d\n",FEMALE);printf("%d\n",SECRET);return 0;
}
可以看见,枚举常量和函数有些不同!你看枚举常量中会有enum这一个东西,他是用来定义枚举常量类型。而将上面这几行代码运行后会发现打印出来的是常量,当我们试图去给这些量去赋值的时候,会发现出错,因此,我们可以推断这些量都是常量。当然从字面意思也可以看得出来。只是为了大家好理解哈哈哈
好啦,这一个内容搞完啦,我们下一次再见吧!
(小声哔哔,一定不鸽啦!!!(doge))
咕咕王小谢的C语言之路————第一章 初遇C语言 第三集 变量与常量相关推荐
- 小谢同学的C语言之路————第一章 初遇C语言 第二集 数据类型
承接上集,我们学习了第一个C语言程序.接下来我们来学习数据类型! 首先,小C来介绍一些数据类型,他们分别是: 1.char__________________________ 字符数据类型 2.sho ...
- Flash ActionScript3 殿堂之路 第一章:ActionScript3语言介绍与开发环境
本章简略介绍ActionScript3语言的历史.新增特色和开发工具,并讲解了各种开发环境设置,以及第一个ActionScript3程序. 本章导读 对于ActionScript3初学者,本章将带你了 ...
- C语言程序教程第一章答案,C语言教程课后习题答案
C语言程序设计教程 电子科技大学出版社 主编:周鸣争 第一章 C语言概述 一.简答题 1.(1)语言简洁.紧凑,使用方便.灵活:(2)运算符丰富:(3)具有丰富的数据类型: (4)具有结构化的控制语句 ...
- 数据结构c语言版第一章答案,《c语言数据结构》第一章概论自测题答案
<<c语言数据结构>第一章概论自测题答案>由会员分享,可在线阅读,更多相关<<c语言数据结构>第一章概论自测题答案(4页珍藏版)>请在人人文库网上搜索. ...
- 【C语言笔记初级篇】第一章:C语言快速入门及注意事项
(1)第一个C语言程序 A:利用vs2010写C语言程序 1:按以下步骤新建工程 2:添加源文件,".c"文件 B:第一个C语言代码 1:以下是基本的C语言程序 2:由于没有设置连 ...
- c生万物【第一章 初识c语言】
c生万物---第一章 初识c语言 前言 1.什么是C语言 2.第一个C语言程序 3.数据类型 4.变量.常量 4.1定义变量的方法 4.2变量的分类 4.3变量的使用 4.4 变量的作用域和生命周期 ...
- 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述
第一章:C语言概述 1.绪论 2.计算机程序 3.计算机语言 4.C语言的发展及其特点 5.最简单的C语言程序 6.运行C语言程序的方法与步骤 7.程序设计任务 1.绪论 C语言是计算机基础语言,本次 ...
- c语言第一章,C语言修正版第一章
<C语言修正版第一章>由会员分享,可在线阅读,更多相关<C语言修正版第一章(28页珍藏版)>请在人人文库网上搜索. 1.C,语言,重要性,结构化编程语言,语言的入门课,基础课, ...
- 数据结构(C语言)第二版 第一章课后答案
数据结构(C语言)第二版 第一章课后答案 这本书,我以后也会用,所以趁着考完试做个整理,顺便分享出来.电子资源发不出来,放评论区吧,有需要自取. 1. 简述下列概念:数据.数据元素.数据项.数据对象. ...
- 一台计算机安装了fortran语言,第一章计算机Fortran语言简介精要.ppt
第一章计算机Fortran语言简介精要.ppt 第1章 计算机与Fortran语言简介 知道计算机的基本构造 理解二进制系统 Fortran的历史和现状 内容简介: 1.1 计算机 CPU (cent ...
最新文章
- Single Number
- 转载:Linux下查看/修改系统时区、时间
- 什么叫组网_5G中,啥是独立组网(SA)与非独立组网(NSA)
- shiro实现url级别的权限控制(用户登录)配置文件分析
- iPhone 12系列被曝量产延期:10月能见到就不错
- 远程控制软件 mRemoteNG,管理多台虚拟机
- iOS数据库的使用(二):sqlite教程
- 手机操作系统学习总结
- curl测试post请求
- 几何公差基础知识之垂直度
- hdu 4966 GGS-DDU 最小树形图
- 印度BIS认证标志详解
- poj 2586 Y2K Accounting Bug
- 有一个已经排好序的数组,要求输入一个数后,按原来排序规律将它插入数组中。
- Golang 多版本管理神器 gvm
- 网页禁止粘贴的解决方法(以学习通网页为例)
- css3 平行四边形 、大括弧
- CDateTimeCtrl 用法总结
- 阿里云服务器绑定域名、esc绑定域名、域名备案
- 初次接触java小感
热门文章
- 计算机sci转让,紧急转让的环境sci,一共四十个选题,2020年上半年出版,包SCI检索...
- Draco代码分析(一) —— Encode过程探究其数据编码方式
- 新版本edge浏览器修改默认搜索引擎
- ABOV(12) UART
- 《炬丰科技-半导体工艺》三维硅MEMS结构微加工
- @vuecomposition-apidistvue-composition-api.mjs in .node_modulesvue-demilibindex.mjs 报错
- MFI认证与PPID
- PYTHON对接语音验证码接口API
- 计算机中信息的表示方法 教案,计算机中的数的表示教案
- php curl添加授权Authorization 验证头