常量和宏定义

上节课学到,变量就是在内存中给它找一个适当的空间并给它命名。用它来存放数据,那么这就是变量。

       常量就是在程序的运行过程中,他的值不能被改变, 我们就称之为常量。常常在那里就叫常量,偶尔在那里就叫变量。

       在C语言中,常量有整型常量,实型常量,字符常量(普通字符和转义字符),字符串常量,以及符号常量。 

       其中符号常量比较特殊,在使用前必须先定义。

       define的功能就是把程序中所有出现的标识符替换成后面的常量。示例如下。

        上图中以第一个为例,就是把程序中出现的所有URL替换成后面的常量链接。直接上代码测试。

#include <stdio.h>

#define URL "http://www.fishc.com"
#define NAME "鱼C工作室"
#define BOSS "小甲鱼"
#define YEAR 2010
#define MONTH 5
#define DAY 20

int main(){
	printf("%s成立于%d年%d月%d日\n",NAME,YEAR,MONTH,DAY);
	printf("%s是%s创立的......\n",NAME,BOSS);
	printf("%s的域名是%s\n",NAME,URL);
	//这里值得注意的是,根据上节课所学,其中的%s中的s表示转换为字符串类型 
	
	return 0;
} 

       运行结果。

        这就是常量的宏定义,在后续的编程过程中将十分有用。

这里需要注意的是,为了将符号常量和普通的变量名区分开,我们习惯用全部大写字母来命名符号常量,使用小写字母来命名变量。

       其中标识符的命名规范如下。

       还需要值得注意的是,我们知道在C语言中,单引号中的一个字符在编译运行过程中会占用一个字节。但在双引号中的字符串在编译运行时,例如“Hello world"则应该要占用11个字节。但是问题来了,在编译运行时,操作系统如何来判断字符串的实际长度呢?当程序读取到字符串的开头时,该如何判断到哪里结束呢?否则内存就会一只的读取下去,将之后的代码也读取成了字符串,那么问题就大了。

       实际上,当我们用双引号框起一个字符串的时候,在程序编译运行时,编译器会自动在字符串最后加一个特殊的转义字符“\0”(也就是空字符),它用来表示一个字符串的结束位置。因此严格来说,在编译字符串“Hello world"时,应该会占用12个字节,也就是包含12个字符,最后一个为转义字符“\0”。

 

注:如果觉得有用的话,记得点赞收藏哦!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值