C语言的常量

导读:本篇文章讲解 C语言的常量,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

常量

基本介绍

整数常量

浮点常量

字符常量

字符串常量

 定义常量的两种方式

#define预处理器

 define的注意事项

const关键字

const的注意事项

常量

基本介绍

  • 常量是固定值,在程序执行期间不能改变。
  • 常量可以是任何的基本的数据类型,比如整数常量、浮点常量、字符常量、字符串字面值,也有枚举常量
  • 常量的值在定义后不能进行修改

整数常量

  • 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示 十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后 缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)C语言的常量

浮点常量

  • 浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以用小数形式或指数形式来表示浮点常量

浮点常量举例说明

3.14159; //double 常量

314159E-5; // 科学计数法

3.1f; //float常量

字符常量

  • 字符常量是括在单引号中,例如,’x’ 可以存储在 char 类型的变量中。字符常量可 以是一个普通的字符(例如 ‘x’)、一个转义序列(例如 ‘\t’)。

字符串常量

  • 字符串字面值或常量是括在双引号 “” 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。可以使用空格做分隔符,把一个很长的 字符串常量进行分行。
#include <stdio.h>

void main() {

	int n1 = 0123;//八进制
	int n2 = 0x4b;//十六进制
	char c1 = 'a';//常量
	char c2 = '\t';//‘\t’是字符常量
	char str[20] = "中国hello";//"中国hello"字符串常量
	char str2[100] = "hello \
world";//这时等价于“hello world”

	printf("n1=%d", n1);//83
	printf("\nn2=%d", n2);//75

	printf("\nc1=%c", c1);//a
	printf("\nc2=%c", c2);//   

	printf("\nstr = % s\nstr2 = %s", str, str2);

	getchar();
}

 定义常量的两种方式

  • #define预处理器

            #define 常量名 常量值

#include<stdio.h>
//#define PI 3.14
//const 数据类型 常量名 = 常量值;
const double PI = 3.14;

//main方法中不能再进行修改
//定义常量
int main() {
	double area;
	double r = 1.2;
	area = PI * r * r;
	printf("面积:%.2f", area);//面积:4.52
	getchar();
	return 0;
}

 define的注意事项

#include<stdio.h>
#define A 1
#define B A+3
#define C A/B*3

void main() {

	//C其实是A/A+3*3
	printf("C=%d", C);//C=10

	getchar();
}
#include<stdio.h>
#define A 1
#define B (A+3)
#define C A/B*3

void main() {

	printf("C=%d", C);//C=0

	getchar();
}

void main() {

	double d1 = 1 / 4 * 3;

	printf("C=%.2f", C);//C=0.00
	printf("\nd1=%.2f", d1);//d1=0.00

	getchar();
}
#include<stdio.h>
#define A 1
#define B (A+3)
#define C A/B*3

void main() {

	double d1 = 1.0 / 4 * 3;//精度最大变为float

	printf("C=%.2f", C);//C=0.00
	printf("\nd1=%.2f", d1);//d1=0.75

	getchar();
}
  • const关键字

        const 数据类型 常量名 = 常量值;

  • const定义的常量时,带类型,define不带类型
  • const是在 编译、运行的时候起作用,而define是在编译的预处理阶段起作用
  • define只是简单的替换,没有类型检查。简单的字符串替换会导致边界效应
  • const常量可以进行调试的,define是不能进行调试的,主要是预编译阶段就已经替 换掉了,调试的时候就没它了
  • const不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义, 再重新定义 
  • define可以配合#ifdef、 #ifndef、 #endif 来使用, 可以让代码更加灵活,比如我们 可以通过#define 来 启动或者关闭 调试信息。

const的注意事项

  • const不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义, 再重新定义 
//const不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义,再重新定义 
const double PI=3.14;
//const double PI=3.145;

#define PI2 3.14
#undef PI2 //  取消PI2 的定义
#define PI2 3.145
#include<stdio.h>

#define DEBUG 

void main() {
#ifdef DEBUG
	printf("调试信息,ok");

#endif 
#ifndef DEBUG
	printf("hello,另外一个信息");

#endif
	getchar();

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83278.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!