qiaoxu123
7/31/2019 - 5:43 AM

C/C++中const

参考链接 const变量在C/C中有较大的区别。对于C语言来讲,const定义仅仅是一个只读变量,可以通过指针进行修改。而C中对const参数进行了升级处理,使用类似宏定义的方式进行了常量化。为了向上兼容,也保留了原有的一些性质。具体看参考链接。

#include<stdio.h>

int main(){
	const int c = 0;
	int* p = (int*)&c;
	
	printf("Begin...\n");
	*p = 5;
	printf("c = %d\n",c);
	printf("End...\n");
	return 0;
} 
#include<iostream>
using namespace std;

void f(){
	#define a 3		//此处为预处理,在编译之前已经将所有a都进行了替换
	const int b = 4;
}

void g(){
	printf("a = %d\n",a); //此处a已经进行了替换
	//printf("b = %d\n",b);
}

int main(){
	const int A = 1;
	const int B = 1;
	int array[A + B] = {0};//此处若用C语言编译器,则报错。因为数组大小定义使用变量
	int i = 0;
	for(i = 0;i < (A + B);++i)
		printf("array[%d] = %d\n",i,array[i]);
	f();
	g();
	return 0;
}