c程序常量与变量的概念(C语言程序设计)(1)

​ 对于 C 语言的学习,必须的有一个标准:以能否编译通过,运行出结果为准,相信我,目前市场上面主流的编译器都是没有问题,编译不通过,第一想法,是程序的问题,而不是编译器的问题,先把这个思想灌输给大家

常量

常量:写 C 程序的时候,在源程序文件中表达不变的量的各种 “合法” 的书写方式

1、整型(int、short、long)

A、十进制:是以数字 0-9 组成的整数,eg:123、5、0、-23 等

B、八进制:是以数字 0-7 组成,并且是以 0 开头的整数,eg:014、-012

C、十六进制:是以 0-9 和 a-f/A-F 组成,以 0x 或者 0X 开头额整数,eg:0x41、0XAc

2、浮点型(float、double)

在 32 位系统下,默认浮点类型为:float

在 64 位系统下,默认浮点类型为:double

科学计数法:aeb,其中 a 必须是整型或者小数,b 必须是整型,e 可以用 E,eg:3e-2 的意思是:3 * 10^-2 = 0.03

3、字符常量

A、可以写字符:'A'、'0'、'a'

B、可以直接描述其ASCII码:65、32、97 (下面普及 ASCII 码)

C、八进制、十六进制均可以表示字符常量,分别为:'\ '、'\x '

D、转义字符:就是针对有歧义的字符,避免出现二义性,C 语言引入了一个机制:在 \ 的后面, 写一个字符,就可以表达特定的字符本身含义

eg:' <==> '\'' ,这样才能表示出是一个单引号的意思

\ <==> '\\',这样才能表示出一个 \ 的意思

4、字符串常量:在" "里所表达的都是字符串常量

eg:"ABC"、"\x41\x42\x43" (十六进制的字符串常量,其实只有 3 个字符)

字符串长度:不包括 " ,只数字符个数

"":长度为 0 的字符串叫做,空串

" ":长度为 1 的空格串

ASCII码知识普及:在计算机中,像汉字、字符是不可能存储的,计算机只认识 0 和 1,对于字符,计算机是通过点阵矩阵进行存储(一个英文字符将对应一个点阵信息),保存一个英文字符的点阵信息,需要 2 字节的存储空间

在计算机中,对字符的管理,是通过编号进行的,编号的三个原则:

A、从 0 开始编号

B、连续编号

C、用二进制编号

对英文字符的点阵信息使用一个字节的低 7 位进行编号,这个编号就叫做:ASCII 码

' ' (32):空格的 ASCII 码是 32

'0' (48):字符 0 的 ASCII 码是48

'A' (65):字符 A 的 ASCII 码是65

'a' (97):字符 a 的 ASCII 码是97

ASCII 码 就是字符所对应的编号,看到 ASCII 码就等价于这个编号(数字),字符即数字

字符零:'0' ==> 48

零:0 ==> 0 ==>'\0',这个是真正的 0

对于字符的大小比较,或者是字符串的大小比较,其实都是对其 ASCII 码进行比较,换为相应的编号,做减法即可

关于全角和半角:全角实质上就是中文点阵,占 2 字节,半角就是英文点阵,也就是 ASCII 码,占 1 字节,在 C 语言程序设计中,只能使用英文的标点,不得使用中文标点

变量

本质:内存中一段连续的存储空间,空间即变量

计算机表达信息的最小物理单位:一个二进制位(比特 bit)

1B = 8bit

1KB = 1024B = 2^10B

1MB = 1024KB = 2^20B

1GB = 1024MB = 2^30B

对于内存的理解:

A、内存是由多个字节组成的一维、线性、连续存储空间

B、字节是内存分配存储空间的基本单位

C、对于内存中的多个字节,通过对字节(也就是内存空间 1B)进行唯一性的编号来管理

D、参与字节编号的二进制位数,将决定这个计算机所能管理的内存大小

变量的三个要素:

变量名称:每个变量都必须起一个英文名,变量名称要能很清晰的代表其所表达的意思,eg:成绩,用变量名:score

命名原则:

A、必须以字母或者下划线(_)开头

B、只能由字母、数字、下划线字符组成

C、不能使用 "关键字" / 起名

D、C 语言区分大小写

变量类型:决定了该变量在内存中的大小(字节数)

变量的值:对该变量空间中进行一系列运算后,所得到的结果

定义变量的本质:申请存储空间,变量的类型在定义时被确定,其终生不会改变,在标准 C 下面,变量必须先定义,后使用,定义变量的语句必须在所有的有效语句之前,且定义变量不赋值,默认为垃圾值

int a = 0; 定义了一个 4 字节的存储空间,且初始值为 0,在内存角度,这 4 个字节紧挨着,也就是每个字节空间都为0x00,其十六进制为:0x00000000,数据类型和表达式下篇见。。。

注意:常量和变量所占的内存空间是不一样的,一般常量在常量区,变量分配的空间在栈上,具体的内存四区有时间可以写

,