C 语言 常量+变量

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

常量

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

常量主要有以下几种:

  • 整型(int、short、long)
进制解释
十进制是以数字 0-9 组成的整数,eg:123、5、0、-23 等
八进制是以数字 0-7 组成,并且是以 0 开头的整数,eg:014、-012等
十六进制是以 0-9 和 a-f/A-F 组成,以 0x 或者 0X 开头额整数,eg:0x41、0XAC等
  • 浮点型(float、double)
  • 在 32 位系统下,默认浮点类型为:float
  • 在 64 位系统下,默认浮点类型为:double
  • 科学计数法:aeb,其中 a 必须是整型或者小数,b 必须是整型,e 可以用 E,eg:3e-2 的意思是:3 * 10^-2 = 0.03
  • 字符常量
  • 字符表示:‘A’、‘0’、‘a’
  • ASCII码表示:65、32、97 (下面普及 ASCII 码)
  • 八进制、十六进制均可以表示字符常量,分别为:’\ ‘、’\x ’
  • 转义字符:就是针对有歧义的字符,避免出现二义性,C 语言引入了一个机制:在 " \ " 的后面,写一个字符,就可以表达特定的字符本身含义。
    eg: ‘\’,这样才能表示出一个 \ 的意思
  • 字符串常量
  • 在编译器中“”双引号中的都是字符串常量
    eg:“ABC”、"\x41\x42\x43" (十六进制的字符串常量,其实只有 3 个字符)
  • 字符串长度:不包括 “” ,只数字符个数
    eg: “”:长度为 0 的字符串叫做空串
    eg: " ":长度为 1 的空格串
  • 字符数量:在字符串中,寄存器内部会在储存字符串时,自动加上 “\0”(即空字符)作为判断字符串结束的标志。所以在计算字符串的字符数量时,字符长度=实际字符数+1
    eg: “ABC” 的字符长度为4

ASCII码

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

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

  1. 从 0 开始编号
  2. 连续编号
  3. 用二进制编号

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

符号ASCII码
’ ’32
‘0’48
‘A’65
‘a’97

ASCII比较

在这里,我们需要主要的是,ASCII 码就是字符所对应的编号,看到 ASCII 码就等价于这个编号(数字),字符即数字。

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

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

变量

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

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

转化前转化后
1B8bit
1KB1024B = 2^10B
1MB1024KB = 2^20B
1GB1024MB = 2^30B

关于内存

  • 内存是由多个字节组成的一维、线性、连续存储空间
  • 字节是内存分配存储空间的基本单位
  • 对于内存中的多个字节,通过对字节(也就是内存空间 1B)进行唯一性的编号来管理
  • 参与字节编号的二进制位数,将决定这个计算机所能管理的内存大小

变量的三个要素

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

另外,变量的命名原则在代码规范中尤其重要,请务必牢记:

  • 必须以字母或者下划线(_)开头
  • 只能由字母、数字、下划线字符组成
  • 不能使用 “关键字” 起名(也叫保留字)
  • C 语言区分大小写
  • 变量类型:决定了该变量在内存中的大小(字节数)
  • 变量的值:对该变量空间中进行一系列运算后,所得到的结果

补充

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

注意:
常量和变量所占的内存空间是不一样的,
一般常量在常量区,变量分配的空间在栈上。

ps: 觉得不错的,欢迎随手点赞、转发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值