C语言常量和变量 2021-11-17 23:14 301阅读 0赞 # 一切都是数据 # 对计算机来说,图片、文字、音乐、视频等都是数据,在计算机中以二进制的0和1存储,数据量越大,0和1就越多。 数据分为静态数据和动态数据。 我们编写程序的目的就是告诉计算机如何输入、处理、传输、存储和展示数据。 ## 1、静态数据 ## 永久性的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的,电脑关机重启后依然存在。 ## 2、动态数据(临时数据) ## 程序运行过程中,动态产生的的临时数据,一般存储在内存中,软件退出或者电脑关机时这些临时数据会被清除。 为什么不把动态数据存放到硬盘?因为访问内存的速度访问硬盘快很多倍。但是,与硬盘相比,内存的存储空间比较小。 ## 3、数据大小 ## 1)数据都是由二进制的0和1组成。 2)数据都会占用空间,静态数据占硬盘空间,动态数据占内存空间。 3)数据占用空间的最小单位是比特(bit)。一个1或者0就是一个比特,即1bit。 4)计算机中,以字节为单位存储数据。1字节=8比特(1Byte=8bit)。 1PB=1024TB,1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B,1B=8bit。 # 常量 # 常量即常数,表示固定的数据。 1)字符常量 如'6','a','F'(不能是中文,例如:'男',因为一个汉字和全角的符号占两个字节。) 2)整型常量 如6,27,-299 3)浮点型常量 如5.43,-2.3,5.67,6.0 4)字符串常量 如"625","女","nanabc","西施" # 变量 # 如果数据的值是不确定的,或者经常需要改变,或者临时取值的,则用变量来存放。 **常量是指具体的数据,变量是用于存放数据的容器**,称呼上只差一个字,但不是兄弟关系,而是水与水桶的关系。 变量使用前必须先进行声明(或定义)。向系统申请一块内存空间给变量,用于存放数据。如果要定义多个变量向系统申请多块内存空间。 ## 1、整数型、字符型、浮点型变量的定义 ## 变量的定义,也称之为变量的声明,或定义变量,或声明变量,这些都是程序员的习惯叫法,实际上都是同一个意思。 定义整数型变量用关键字int,它是单词integer(整数)的缩写。 int ii; // 定义整数型变量,用于存放整数。 定义字符型变量用关键字char,它是单词character(字符)的缩写。 char cc; // 定义字符型变量,用于存放字符。 定义浮点型变量用关键字double,是一个完整的单词,双精度,很精确的意思。 double money; // 定义浮点型变量,用于存放浮点数。 ## 2、字符串变量的定义 ## 在C语言中,没有“字符串”这个数据类型,而是用字符数组来表达字符串,并提供了丰富的库函数来操作字符串。 char name\[21\]; // 定义一个可以存放20字符的字符串。 各位先注意几个要点: 1)如果要定义一个存放20个英文的字符串,数组的长度应该是20+1,原因以后再讨论。 2)一个中文汉字或全角的标点符号需要两个字符宽度来存放。 例如name\[21\]可以存放20个英文字符,或10个中文字符。 3)字符串不是C语言的基本数据类型,不能用“=”赋值,不能用“>”和“<”比较大小,不能用“+”拼接,不能用==和!=判断两个字符串是否相同,要用函数,具体方法我以后再介绍,现在了解就可以。 ## 3、变量的命名 ## 变量名属于标识符,需要符合标识符的命名规范,如下: 1)变量名的第一个字符必须是字母或下划线,不能是数字和其它字符。 2) 变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。 3)变量名绝对不可以是[C语言][C]关键字。 关于变量的命名,为了便于理解,尽可能用英文单词或多个英文单词的简写,不要太长,太长了书写麻烦,如果英语不好,那就用中文拼英的第一个字母,例如身份证号码,cardid、userid都可以,sfzhm也行,不要怕被笑话,中国的程序员英语不好的多了去。 # 关键字 # 关键字也称为保留字,共32个,也就是说这些单词在C语言中有特别的含义,程序员不能把它用于变量或函数的命名。 auto :声明[自动变量][Link 1] break:跳出当前循环 case:开关语句分支 char :声明字符型变量或函数返回值类型 const :声明只读变量 continue:结束当前循环,开始下一轮循环 default:开关语句中的“默认”分支 do :[循环语句][Link 2]的循环体 double :声明[双精度浮点型][Link 3]变量或函数返回值类型 else :条件语句否定分支(与 if 连用) enum :声明枚举类型 extern:声明变量或函数是在其它文件或本文件的其他位置定义 float:声明浮点型变量或函数返回值类型 for:一种循环语句 goto:无条件跳转语句 if:条件语句 int: 声明[整型变量][Link 4]或函数 long :声明长整型变量或函数返回值类型 register:声明[寄存器变量][Link 5] return :子程序返回语句(可以带参数,也可不带参数) short :声明短整型变量或函数 signed:声明有符号类型变量或函数 sizeof:计算数据类型或变量长度(即所占字节数) static :声明[静态变量][Link 6] struct:声明[结构体类型][Link 7] switch :用于开关语句 typedef:用以给数据类型取别名 unsigned:声明无符号类型变量或函数 union:声明[共用体][Link 8]类型 void :声明函数无返回值或无参数,声明无类型[指针][Link 9] volatile:说明变量在程序执行中可被隐含地改变 while :[循环语句][Link 2]的循环条件 C语言的关键字无需背诵,如果你程序用不小心用了关键字给变量命名,编译时会报错,用多了就熟悉了。 # 变量的初始化 # 在main函数内部定义的变量称为局部变量,局部变量被定义后,系统不会对其初始化,你必须写程序对其初始化。 ## 1、整数型、字符型、浮点型变量初始化 ## 对整数型、字符型、浮点型变量来说,初始化就是给它们赋0值。 可以在定义的时候立即初始化。 int ii=0; // 定义整数型变量并初始化 char cc=0; // 定义字符型变量并初始化 double money=0; // 定义浮点型变量并初始化 也可以先定义,然后再初始化。 int ii; // 定义整数型变量 char cc; // 定义字符型变量 double money; // 定义浮点型变量 ii=0; // 初始化ii为0 cc=0; // 初始化cc为0 money=0; // 初始化money为0 ## 2、字符串变量的初始化 ## 对字符串变量来说,初始化就是把内容清空。 char name\[21\]; // 定义一个可以存放20字符的字符串 memset(name,0,sizeof(name)); // 清空字符串name中的内容 注意了,字符串变量的初始化与其它类型不同,要用memset函数,先不要问为什么,就这么抄,以后再解释,你也不必花时间和精力去研究,没有必要浪费时间。 ## 3、未初始化的变量示例 ## 变量初始化是一个良好的编程习惯,否则有时候程序可能会产生意想不到的结果。 未初始化的变量会导致在内存中可能有垃圾值。 **示例(book9.c)** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70][] **运行结果** ![20190731105121590.png][] 大家注意,在上图中,局部变量ii和name中是值乱七八糟的垃圾值。 ## 4、初始化后的变量示例 ## **示例(book10.c)** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70 1][] **运行结果** ![20190731105209913.png][] 大家注意,在上图中,变量值被清0,没有任何垃圾值。 # 变量的赋值 # 把常量的值赋给变量: ii=10; // 整数型变量赋值10 cc='A'; // 字符型变量赋值'A' money=1500.87; // 浮点型变量赋值1500.87 strcpy(name,"西施"); // 对字符串变量赋值"西施" 把变量的值赋给变量: int ii1=ii; // 定义变量ii1并把ii的值赋给它 char cc1=cc; // 定义变量cc1并把cc的值赋给它 double money1=money; // 定义变量money1并把money的值赋给它 char name1\[21\]; // 定义字符串变量name1 strcpy(name1,name); // 把name的值赋给name1 注意了,字符串变量的赋值与其它类型不同,不能用=号,要用strcpy函数,先不要问为什么,就这么抄,以后再解释,你也不必花时间和精力去研究,没有必要浪费时间。 **示例(book11.c)** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70 2][] **运行结果** ![20190731105459250.png][] # 多变量操作 # ## 1、多个变量的定义 ## 定义多个变量有以下方法。 int ii; int jj; 也可以书写为一行,如下: int ii,jj; ## 2、多个变量的赋值 ## 整数、字符和浮点型变量可以用一个语句对多个变量赋相同的值,如果要赋不同的值,只能用多条语句了。 ii=jj=10; // 对ii和jj赋相同的值10 ii=jj=30; // 对ii和jj赋相同的值30 ii=10; // 对ii赋值10 jj=30; // 对jj赋值30 不论值是否相同,一条语句只能对一个字符串变量变量赋值。 strcpy(name,"西施"); // 对字符串变量name赋值"西施" strcpy(name1,"西施"); // 对字符串变量name1赋值"西施" strcpy(name,name1,"西施"); // 这是个天才的想法,但行不通,不符合strcpy函数的语法。 # const约束 # const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如: const double pi = 3.1415926; 用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋初值,如果程序中试图改变它的值,编译的时候就会报错。 示例: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70 3][] # 版权声明 # C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。 来源:C语言技术网([www.freecplus.net][]) 作者:码农有道 如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!! 如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!! [C]: http://c.biancheng.net/c/ [Link 1]: https://baike.baidu.com/item/%E8%87%AA%E5%8A%A8%E5%8F%98%E9%87%8F [Link 2]: https://baike.baidu.com/item/%E5%BE%AA%E7%8E%AF%E8%AF%AD%E5%8F%A5 [Link 3]: https://baike.baidu.com/item/%E5%8F%8C%E7%B2%BE%E5%BA%A6%E6%B5%AE%E7%82%B9%E5%9E%8B [Link 4]: https://baike.baidu.com/item/%E6%95%B4%E5%9E%8B%E5%8F%98%E9%87%8F [Link 5]: https://baike.baidu.com/item/%E5%AF%84%E5%AD%98%E5%99%A8%E5%8F%98%E9%87%8F [Link 6]: https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E5%8F%98%E9%87%8F [Link 7]: https://baike.baidu.com/item/%E7%BB%93%E6%9E%84%E4%BD%93%E7%B1%BB%E5%9E%8B [Link 8]: https://baike.baidu.com/item/%E5%85%B1%E7%94%A8%E4%BD%93 [Link 9]: https://baike.baidu.com/item/%E6%8C%87%E9%92%88 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70]: /images/20211116/75d555ffc3bb45749a10c5fb47195cb6.png [20190731105121590.png]: /images/20211116/243684b79a0f46ffb740b348064381f9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70 1]: /images/20211116/eb275822abe5485abceef30d8b3541a9.png [20190731105209913.png]: /images/20211116/d9b241669efb4f1782fc3fae68e04a8b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70 2]: /images/20211116/a8a8b6c28be643fb980c1f24433b8e2a.png [20190731105459250.png]: /images/20211116/52b0e7528dd943b08345d1ae51767cdf.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1Y3oxMjIxNDA3Mjk_size_16_color_FFFFFF_t_70 3]: /images/20211116/0feae90e91f9459fba880a5f4be808cf.png [www.freecplus.net]: http://www.freecplus.net
相关 【C语言】 变量 -- 常量 -- 转义字符 目录 1.变量 1.1 作用域:(限定名字可用性的范围,通俗讲就是变量能起到作用的那一块区域) 1.1.1 局部变量:局部变量所在的局部范围。 1.1.2 全局变量:整 太过爱你忘了你带给我的痛/ 2023年09月27日 13:08/ 0 赞/ 16 阅读
相关 C语言和C++指针常量和常量指针 指针常量 指针常量,用指针修饰的常量,它的本质是一个常量 int a = 111, b = 222; int const p = &a; ╰半夏微凉°/ 2022年12月11日 02:28/ 0 赞/ 115 阅读
相关 【Go语言基础】变量和常量 用Go语言编写的程序都是从基本组件构成,而构成这些基本组件的是标识符,本章中将介绍到Go语言中使用到变量,常量以及基本数据类型。 1. 标识符 标识符是函数、变量、常量 叁歲伎倆/ 2022年10月08日 08:20/ 0 赞/ 96 阅读
相关 647-C语言的变量和常量讲解大全 常量和变量 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBALeae 今天药忘吃喽~/ 2022年09月12日 15:52/ 0 赞/ 151 阅读
相关 【C语言】【unix c】变量和常量 不管是变量还是常量,在程序执行中都占用空间,变量内存空间里的值是可以被改变的,常量里的值是不能被改变的,只读的。 做一个小实验: 素颜马尾好姑娘i/ 2022年06月10日 05:21/ 0 赞/ 93 阅读
相关 小朋友学C语言(5):常量和变量 先动手编写程序: include <stdio.h> int main() { int a = 1; pri Love The Way You Lie/ 2022年06月07日 12:12/ 0 赞/ 85 阅读
相关 C++ 变量和常量 一、变量 程序运行时,所需的数据要放在内存值才能使用,内存被格式化成一个个小的存储单元,数据保存在这些存储单元中。 这些存储单元被编上序号(内存地址)。 高级语言设 àì夳堔傛蜴生んèń/ 2022年05月29日 01:55/ 0 赞/ 108 阅读
相关 go语言 常量和变量 一.不同类型的变量声明(定义) 1.传统防水 var a int var b float64 2.可以自动推导类型 深藏阁楼爱情的钟/ 2022年05月21日 05:34/ 0 赞/ 133 阅读
相关 C语言常量与常变量 常量:使用\define定义常量,常量名大写,定义时无需指定数据类型,行末没分号;不允许改变值;常量不占用内存,只是一个临时符号,代表一个值,预编译时会进行字符替换(将临时符号 亦凉/ 2022年04月05日 15:24/ 0 赞/ 189 阅读
相关 C语言常量和变量 一切都是数据 对计算机来说,图片、文字、音乐、视频等都是数据,在计算机中以二进制的0和1存储,数据量越大,0和1就越多。 数据分为静态 怼烎@/ 2021年11月17日 23:14/ 0 赞/ 302 阅读
还没有评论,来说两句吧...