C语言常量与变量/const是什么/define定义标识符常量/c语言const修饰指针在*之前和在*之后的区别/c语言const *和*const的区别

本文详细介绍了C++中的四种常量类型:字面常量、const修饰的常变量、#define定义的标识符常量和枚举常量。通过实例展示了const在不同情况下的用法,包括const修饰的变量、指针和指针变量。同时,解释了#define常量的使用以及枚举常量的特性。最后,探讨了变量的作用域和生命周期,包括局部变量和全局变量的区别以及全局变量的跨文件使用。
摘要由CSDN通过智能技术生成

常量一般可以概括为4种:字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量。

1.字面常量

字面常量一般为常数,如1为整型常量、3.6为浮点型常量、'a'为字符常量(注意字符常量只能是一个字符。错误示范:'ab');

2.const修饰的常变量

 (1)当const修饰常量时,该常量不能被重新赋值,例如:

#include <stdio.h>
int main()
{
	const int n = 0;
	n = 10;
	return 0;
}

在编译器中会报错:

(2)当const修饰指针时,当const在*的左边是,无法通过解引用操作改变n所在地址的内容,例如:

#include <stdio.h>
int main()
{
	int n = 0;
	printf("%d", n);
	int const * p = &n;
	*p = 10;
	return 0;
}

在编译器中会报错:

(3)当const修饰p时,指针变量p所指向的地址不能再被改变,例如:

#include <stdio.h>
int main()
{
	int m = 0;
	int n = 0;
	int* const p = &m;//指针p在初始化时取变量m的地址
	p = &n;
	return 0;
}

在编译器中会报错:

3.#define定义的标识符常量

#include <stdio.h>
#define MAX 10
int main()
{
	printf("%d", MAX);
	return 0;
}

define定义MAX为10,所以使用printf函数输出MAX结果也应为10。

 4.枚举常量

#include <stdio.h>
enum sex
{
    MALE,
    FEMALE
} 
int main()
{
    enum sex s=male;
    return=0;
}

此时s只可以等于MALE或者FEMALE,不可以等于其他。

5.变量的作用域和生命周期

局部变量的作用域就是变量所在范围,全局变量的作用域是整个程序从开始至结束。

在同一个工程中,全局变量可以跨源文件使用,但需要先声明。如在第一个源文件中定义:

int a=100;

若要在第二个源文件中输出a的值,须先声明:

int main()
{
    extern int a;
    printf("%d\n",a);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值