C语言学习笔记:常量与变量

常量与变量

在C语言中,数据的基本表现形式是常量和变量。不管是常量还是变量,都是需要在内存中开辟一块空间,用于数据的存放。

常量

  • 定义:在我们程序执行过程中其值不能改变的量。

  • 分类:int、float、double、char和符号常量。

整型常量(int)

  • 整型常量可用十进制、八进制、十六进制三种形式表示。

    • 十进制整型常量:由0~9的数字组成,没有前缀,不能以0开头(如:0是可以的,09是不可以的)。

    • 八进制整型常量:以0为前缀,其后由0~7的数字组成,没有小数部分。(如:023)

    • 十六进制整型常量:以0x或者0X为前缀,其后由0~9的数字和A到F(大小写均可)字母组成,没有小数部分。(如:0x00FF0000、十六进制的颜色值)

    整型常量中的长整型数据可用L作为后缀(如:123L)

  • 整型常量的分类

    • 有符号与无符号基本整型常量

    • 有符号与无符号长整型常量

    • 有符号与无符号短整型常量

  • 整型常量的表示

    • 十进制表示:可以使用十个数字符号0~9,以及+,-,如:123,-456

    • 八进制表示:以0开头,可以是用7个数字符号0~7以及+,-,如:0123,-011

    • 十六进制表示:以0x开头,符号有0~9,A~F,a~f,如:0x12,-0x11

浮点型常量

C语言中的浮点数就是平常所说的实数,有两种表现形式:

  • 十进制小数形式:如:0.123,-17.8

  • 指数形式(科学记数法),如:1230.0可以表示为1.23e3或者1.23E3

注意:

  1. 在符号e的前面必须要有数字

  2. 在符号e的后面必须为整数,不能是带有小数点的实数型。实型常量的后缀用F(或f)表示单精度型。后缀用L(或l)表示双精度型

字符常量

用单引号''括起来的字符,如:'a''A''_'等,比如:'霍'就不是字符,一个汉字所占的字节数超过了1个。中文字符当成汉字理解(如:';''。')。英文输入法下输入的字母、数字、符号都是单字符。

转义字符常量:以反斜杠'\'开头的字符序列,表示控制及不可见的字符,如:

序号字符形式含义ASCll码
1\n换行10
2\r回车13
3\0空字符0
4\t水平制表9

字符串常量

说明:在C语言中,是支持字符串常量的,但不支持字符串变量,字符串变量需要使用字符数组或者字符指针实现。

  • 用一对双引号""括起来的一个字符序列,如:"How do you do?","12","true"

  • 可以输出一个字符序列,如:printf("hello world!\n");

注意:

字符串常量"a"与字符常量'a'的区别:

系统自动为字符串常量加上结尾的"\0",使所占内存单元多一个,单字符常量的长度不变,可用sizeof()运算符来测量。

1中文字符 = 2英文字符,中文字符在内存中的实际占用空间 = 2个数据字节 + 空位字节(\0) = 3个字节

符号常量

定义一个标识符来代表一个常量。

  • 如:用PI代表圆周率π,即:3.1415926

好处:

  • 增加可读性

  • 增强了可维护性

定义符号常量

  • 用编译预处理命令#define(宏定义)

格式:

 #define 标识符 字符串
  • 标识符和字符串之间用空格隔开

  • 句末不用分号

  • 标识符的命名采用大写,如果有多个单词,使用下划线分割,举例:MAX_VAL,MIN_VAL,AVG

 #include <stdio.h>
 ​
 // 定义一个符号常量π
 #define PI 3.14
 // 定义一个符号常量r
 #define R 5
 int main
 {
     int a = PI * R * R;// 预处理后:int a = 3.14 * 5 * 5
 }

案例:

在程序中使用符号常量

 #define PRICE 30           /*定义符号常量PRICE*/
 #include <stdio.h>         
 void main()
 {
     int num,total;         /*定义整型变量*/
     num = 10;              /*给变量赋值*/
     total = num * PRICE;    /*符号常量参加运算*/
     printf("total=%d\n",total);
 }

说明

  • 程序中用#define PRICE 30定义了符号常量PRICE的值为30,此后程序中出现的PRICE都用30代替

  • 符号常量不占内存单元

  • 此后在本函数中不允许改变PRICE的值,也不允许再为其赋新的值

  • 使用符号常量的好处:

    • 含义清楚

    • 一改全改

变量

概念:

在程序执行过程中其中的值可以被改变的量,称之为变量

  • 变量代表内存中具有特定属性的一个存储单元,它是用来存储数据的,也就是存放变量的值。

  • 变量应该有一个名字,以便于通过名字访问变量。

格式:

 数据类型 变量名列表;

举例:

 #include <stdio.h>
 ​
 int main()
 {
     // ①声明变量并初始化
     int age = 21;
     
     // ②先声明,再赋值
     int count;
     count = 10;
     
     // ③初始化并修改变量的值 
     int number = 12;
     printf("%d\n",number);// 12,%d是十进制int的格式化符
     number = 22;
     printf("%d\n",number);// 22,我们对同一个变量进行一个赋值的时候,后面赋的值会覆盖掉前面赋的值
 }

基本类型:我们创建变量的同时在内存中开辟对应的内存空间

命名规则:

  • 变量名必须以字母(a-z,a-Z),或下划线开头,后面可以跟若干字母、数字或下划线

  • 变量名不能与C语言中已经存在的标识符(如:int,float,void,break)重名

标识符:

  • 标识符的定义:用来表示对象名字的有效字符。对象包括变量、常量、数组、函数、类型等。也就是标识符就是对象的名字。

  • 标识符的构成:

    • C语言规定标识符只能由字母、数字和下划线三种字符构成,且第一个必须为字母或者下划线。举例:number,_int

    • 编译系统对大小写敏感。变量名和函数名一般用小写字母+下划线,常量名和枚举名一般用大写字母+下划线。举例:变量(set_count)函数(set_count())常量(SET_COUNT)

    • C语言中有三类标识符

      • 关键字:有32个,系统有特定的含义和用途。如:float,int,if,else等,不能用作自定义表示符(变量和函数)

      • 系统预定义的标识符。如:系统提供的库函数名sim,printf,main,scanf以及预处理命令define,include等。

      • 用户标识符:用户定义的标识符,用来改程序中的变量、自定义函数、符号常量、数组、结构体、共用体、文件等命名。

注意:

在C语言中,要求对所用到的变量使用前必须先强制定义,即:先定义,后使用。

  • C语言中有32个关键字,不允许用户用来定义标识符。

  • 12个预处理命令

说明

  • 一个类型说明语句可以同时定义多个类型的变量,各个变量之间使用逗号“,”分割,多个同类型的变量也可以用多个类型说明语句定义:

 // 一个类型说明语句可以同时定义多个类型的变量
 int a,b,c,d;// 同类型
 int a = 3,b = 4,c = 5,d = 6;
 ​
 // 多个同类型的变量也可以用多个类型说明语句定义
 int a;
 int b;
 int c;
 int d;
 int a1 = 3;
 int b1 = 4;
 int c1 = 5;
 int d1 = 6;
  • 用类型说明语句定义的变量只是说明了为这些变量分了存储空间。以便于存放与之相同类型的数据,在未对这些变量赋值前,这些变量中的值是随机的。

  • C语言允许在定义变量的同时为这个变量赋初始值。

  • 在为长整型变量初始化或者赋值时,如果被赋值数据为基本整型常量,则C编译系统自动将赋值数据转换成与相应变量类型一致。

 long a = 12;// 左边是Long类型变量,右边是int常量,当完成赋值操作后,右边的12的类型转换为long
  • 由于各种整型变量所占字节数有限,因此,他们所能存放的整数有一定的范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值