C语言入门教程-(4)常量和变量

1.常量和变量的概念

程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量。常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错。

2.常量和变量的命名规范

在介绍常量和变量的命名规范之前,我们先了解一下什么是标识符和关键字。

1)标识符

标识符,用来标识符号常量名、变量名、函数名、数组名、文件名、类名、对象名等。简单的将就是大家取的名字~~有效标识符的构成规则如下:

  • 1)第一个字符必须是字母(大小写都行)或下划线,不能是数字;
  • 2)后跟字母(大小写都行)、下划线或数字组成;
  • 3)标识符中的大小写字母有区别。如,变量sum,Sum,SUM代表三个不同的变量;
  • 4)不能与编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。比如,不能将标识符命名int,char,float,break,case,for,while,return等等;
    下面列出几个有效的标识符:
teemo    Garenmove_namedj8023  _temp  ithe_hero_is_Garen

下面列出几个无效的标识符:

8times    //第一个字符必须是字母(大小写都行)或下划线,不能是数字。price/tea    //后跟字母(大小写都行)、下划线或数字组成,/不是属于之中。my name    //含有空格x+y    //包含了‘+‘号int    //C语言程序中的关键字

2)关键字

C语言中具有特殊含义的英文单词,通常用于构成语句,存储数据,定义数据类型等。下面列出了C语言中的一些保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

  • 1)基本数据类型
    int:声明整数类型
    float:声明浮点型
    double:声明双精度浮点型
    char:声明字符类型
    void:空类型,声明函数无返回值或无参数
  • 2)流程控制
    条件判断:if、else、switch、case、default等
    循环:while、do、for、break、continue
    返回:return

在本节中,先了解一下就行,有很多不明白的关键字后面会讲到。

3)命名规范

首先,必须是有效的标识符。在这个基础上,我们使用的命名最好能做到看名字就明白它表示什么。如果要使用一个变量来表示teemo的血量,我们可以将其命名为teemo_hp或者teemoHp,而不是随便的命名为a或者b之类的。遇到两个或者更多的单词组成的名称,我们通常用下划线字符将它们连接起来,或者从第二单词开始将每一个单词的第一个字母大写。

还有一些程序员可能会在变量中加入描述变量类型或者内容的前缀。例如,可以将整型变量teemoHp命名为nTeemoHp,其中n表示整数值。这样做的好处是在你遇到这个变量的时候,可以很直接的知道这个变量的类型。常用的几种前缀有:c(表示单个字符)、p(表示指针)等。另外,常量的标识符习惯用大写字母表示,变量的标识符习惯用小写字母表示。单下划线打头的标识符一般代表标准数据库的变量,双下划线打头的标识符一般代表编译器的变量。

关于命名,想说的是,命名可以根据自己的需要、喜好和个人风格来使用,但起码要保证一个程序里面的风格是一致性的。在团队共同开发中,则需要按照规范进行命名。规范的命名不仅可以让自己以后看的明白,也利于给团队其他人维护代码。

3.常量

1)直接常量

直接常量又可以叫做字面常量,通过数据来直接表现。在C语言中,编译器会自动根据字面常量的表示形式确定其类型。例如:

y = x + 3;

在上面的程序中,3将会被编译器作为int类型的常量。再例如:

y = x + 3.0;

3.0是小数,则会被编译器作为float类型的常量。当然,字符也有常量,不过和整型常量不同,字符常量必须使用单引号来进行表示。字符常量是使用单引号括起来的一个字符,不能是多个字符。例如,下面都是合法的字符常量:

‘a‘、‘B‘、‘#‘、‘8‘

需要强调的是只能是单引号,并且只有一个字符,字符可以是ASCII码中的任意字符。如果数字被定义成字符常量的话,就不能代表数字字面的量了。如果参与运算,它的值将会是对应的ASCII码。比如上面的字符常量‘8‘,在ASCII码对应的值为56。这个时候参与运算,比如加上1,将得到的整数值是57。

2)符号常量

在C语言程序中,还可以使用一个符号常量来代替常量。使用符号常量有两个好处,一个是如果需要修改常量的话,只要修改定义符号常量的语句就行;另一个好处,使得程序中常量的含义更加清楚。定义符号常量有两种方法:#define宏定义和const语句定义。在这里我就先不展开讲了,大家过一眼就好了,后面的教程会详细的讲解宏定义和const的应用。

4.变量

在程序中,我们会使用到各种变量。当我们创建一个变量时,就会在内存中开辟一些空间。一般变量先声明,然后初始化。

1)声明变量

C语言中使用声明语句,来声明一个变量,指出存储类型并提供位置标签。C语言中,变量要求先声明后定义,这样做的好处在于:

  • 1.确保后面引用的变量名和声明的一致,减少了输入错误。如声明了变量teemo,在后面引用时,不小心输成了timo,编译器将会报错,指示timo未声明。
  • 2.在声明变量时,会指定变量的类型,当进行运算的时候,编译器就可以检查运算是否合法。
  • 3.编译器根据指定变量的类型分配内存。

声明变量的一般语法格式:

类型 变量名;

其中,类型是数据类型的关键字,比如说int表示整数类型、double表示双精度浮点类型。变量名则需要符合命名规范的标识符。下面我们将会通过简单的程序,来介绍如何声明变量。比如说:我们要声明一个变量表示提莫的血量。在C语言中,就可以表示:

int teemoHp;float teemoAttack;

int 是一种数据类型,表示是整数。
teemoHp 是一个标识符,这里代表整数类型的血量。
; 表示一个语句结束。

我们从计算机的角度来讲,第一条语句指出程序需要一个存储空间,用这个内存来存储一个整数。那么在C语言中,写上这个声明语句,程序就会将计算机的某一区域内存,命名为teemoHp,并在这个内存中存放整数类型。teemoHp这个标识符就是一个变量,它代表teemo的血量。这条语句创造了一个变量teemoHp,我们把这个过程叫做变量声明。

同类型的变量还可以在一个语句中同时声明多个变量,各变量之间用逗号分隔开,例如:

int teemoHp, garenHp;

上面语句声明了两个整数类型的变量,等同于:

int teemoHp;int garenHp;

2)变量初始化

在对变量声明时,编译器会给变量分配内存,但分配的这个内存并不会被清空。这个就和你删除电脑中的文件一样,虽然你点了删除这些文件,但实际上这些文件还会存在,只是我们看不到了。只有当你再次存储文件覆盖这些文件时,这些文件才算是删除了。这也是一些删除的文件,也可以通过某些手段来恢复的重要原因。那么就可能出现编译器给我们分配的内存,已经有存储值的情况,而且这个值对我们来说还是不确定的。为了防止程序因为不确定的值而出现不可预料的情况,我们在使用变量的时候就要对其进行赋初值,使得变量的值是确定的,这种方法就是初始化。

下面再来看一个简单的实例,我们要把提莫的血量作为一个变量,提莫的血量值是586。在C语言中,就可以表示成:

int teemoHp;teemoHp = 586;

我们先声明了一个变量teemoHp,然后将常量586保存到变量teemoHp中。第二个语句中,“=”也叫赋值操作符,这个过程叫做赋值。赋值是指数据放到内存的过程,我们把这个过程叫做变量的赋值;又因为是第一次赋值,也称变量的初始化。

在声明变量的同时可以直接对其进行赋值,上面的两个语句,又可以直接表示成:

int teemoHp = 586;

如果多个变量具有相同的值,还可以进行连续的赋值。例如:

int teemoHp, garenHp;teemoHp = garenHp = 586;

但不可以在声明的时候对其进行连续赋值。像下面语句一样:

int teemoHp = garenHp = 586;//报错

这样写会导致标识符garenHp没有声明,所以编译器报错。

如果要在一个语句中这样做,我们应该写成下面语句:

int teemoHp = 586, garenHp = 586;

我们还可以写成:

int teemoHp, garenHp = 586;teemoHp = 586;

我们知道,在实际中,提莫通过等级的提升以及出的装备,血量的值会不断变化,那我们应该怎么办呢?答案是,血量的值是一个变量,我们可以通过再次赋值改变血量的值,例如:

int teemoHp = 586;teemoHp = 1000;teemoHp = 5000;

再次的赋值,会把第一次的数据覆盖掉。也就是说,teemoHp中最后的值是5000(这怕不是一个肉提莫),这也是因为586、1000已经被覆盖掉了。

5.总结

总结一下,本节内容主要介绍了C语言程序的常量和变量。介绍了常量和变量的概念以及命名规范,然后讲解了它们的一些基本使用方法。

6.练习

4-1 对下面进行判断,哪些是合法标识符,哪些又不是合法标识?

su8_totalClassStudent_namelouts_1_2_3BASICM.D.John\#1233D45a>b

4-2 编写一个程序,对盖伦的属性值,找到合适的类型来定义并且为其赋值。
名字:简称为G
生命值:455
移动速度:340
攻击速度:0.625
攻击范围:125
生命回复:8.25
攻击力:59.5

可以在评论中,写下你们的练习答案。

之后的文章会给大家带来更精彩的内容
欢迎关注我的知乎专栏:程序员基础知识
获取练习答案以及更多实战项目
欢迎关注我的公众号:程序员基础知识
交(gao)流(ji)群:493584686

原文地址:https://www.cnblogs.com/cxyjczs/p/10193398.html

时间: 2024-10-13 02:07:28

C语言入门教程-(4)常量和变量的相关文章

C语言入门教程-(5)格式化输入输出

1.输入和输出 在程序的使用中,我们经常可以看的这么一个场景:用户需要输入数据,经过程序运算,得到结果后输出.在C语言中,输入数据和输出数据都是由库函数完成的,通过语句来输入/输出. 2.格式化输出-printf()函数 C语言程序运算的结果在内存中,我们需要将其输出到指定设备中,我们才可以看到数据.printf是print format的缩写,意思是"格式化打印"."打印"的意思就是在屏幕上显示内容,所以我们称printf是格式化输出. 2.1 printf()函

哪有python开发语言入门教程免费下载?

人工智能时代,如果不想被机器人取代,最应该掌握的是编程.Python作为连续10年最受欢迎的编程语言,不但能开发Google .豆瓣等大型网站,还是人工智能领域的第一语言.那么,我猜你想问哪里有python开发语言入门教程. 千锋Python基础教程:http://pan.baidu.com/s/1qYTZiNE Python课程教学高手晋级视频总目录:http://pan.baidu.com/s/1hrXwY8k Python课程windows知识点:http://pan.baidu.com/

C语言编程:一本全面的C语言入门教程(第三版)PDF下载

网盘下载地址:C语言编程:一本全面的C语言入门教程(第三版)PDF下载 – 易分享电子书PDF资源网 作者: (美)Stephen Kochan 出版社: 电子社博文视点资讯有限公司 译者: 张小潘 出版年: 2006年 页数: 543 页 定价: 59.00元 装帧: 平装 ISBN: 9787121007354 内容简介 · · · · · · 本书是极负盛名的C语言入门经典教材,其第一版发行至今已有20年的历史.本书内容详实全面,由浅入深,示例丰富,并在每个章节后面附有部分习题,非常适合读

Java语言入门教程

(一) Java言语入门教程Java类的组成一向很喜欢一句广告词:日子即是一个七天又一个七天.而我想说的 是,Java运用就是一个类又一个类.Java是面向目标的言语,目标都是由类实例化而来.一个Java运用,不管简略仍是杂乱,都是由若干个Java类 组成的.因而,关于初学者,先知道Java类的组成是必要的. Java类的组成首要有3有些:数据成员.结构办法.办法成员. 首要看下边的代码,是一个简略的Java类: package com.csst.vo; public class Custome

HTML语言入门教程

HTML入门教程 什么是 HTML 语言         HTML(HyperText MarkUp language)是使用特殊标记来描述文档结构和表现形式的一种语言.(它可以用任何一种编译器编译,因为它就是一种纯文本文件) HTML是什么样的 HTML语法就是给文本加上表明文本含义的标签(Tag),让用户(人或者程序)能对文本得到更好的理解.下面是一个最简单的HTML文档:       所有的HTML文档都应该有一个<html>标签,<html>标签包括两个部分:<hea

java入门程序、常量、变量

1. Java语言的发展历史 1.什么是Java语言 Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言.所谓编程语言,是 计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能. 2.Java语言发展历史 1995年Sun公司发布Java1.0版本 1997年发布Java 1.1版本 1998年发布Java 1.2版本 2000年发布Java 1.3版本 2002年发布Java 1.4版本 2004年

C语言的数据、常量和变量

一.数据 图片文字等都是数据,在计算机中以0和1存储. (一)分类 数据分为静态数据和动态数据. ①. 静态数据:一些永久性的的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的.一般以文件的形式存储在硬盘上,电脑关机重启后依然存在. ②. 动态数据:程序运行过程中,动态产生的的临时数据,一般存储在内存中,内存的存储空间一般较小,计算机关闭后这些数据就会被清除.软件或者电脑关闭则这些临时数据会被清除. ③. 静态数据和动态数据可以转换. ④. 注意:为什么不把动态数据存放到硬盘?因为直接访问内存

C语言入门教程-(6)运算符

1.运算符概述 运算符是一种编译器执行特定的数学或逻辑操作的符号.C语言提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 其他运算符 2.算术运算符 算术运算符分为单目运算符和双目运算符,单目运算符表示只需要一个操作数,双目运算符需要两个操作数. 2.1 双目算术运算符 1)+ :加法,把两个操作数相加 2)- :减法,从第一个操作数中减去第二个操作数 3)* :乘法,把两个操作数相乘 4)/ :除法,第一个操作数除以第二个操作数 5)% :求模(取

C语言入门(十四)变量的作用域和存储类型

变量的作用域和存储类型 一.作用域和生存期 C程序的标识符作用域有三种:局部.全局.文件.标识符的作用域决定了程序中的哪些语句可以使用它,换句话说,就是标识符在程序其他部分的可见性.通常,标识符的作用域都是通过它在程序中的位置隐式说明的. 1.局部作用域 前面各个例子中的变量都是局部作用域,他们都是声明在函数内部,无法被其他函数的代码所访问.函数的形式参数的作用域也是局部的,它们的作用范围仅限于函数内部所用的语句块. void add(int); main() { int num=5; add(