怎样用指针引用一个const数组



有许多人对一些常量数组都不用const进行修饰,而是做为一个变量使用。不说安全问题,如果是对于一个嵌入式系统来说,会对空间造成压力,毕竟ROM一般比RAM大的多。

我问过一些学弟,为什么不用const修饰。他们有些说,他们也尝试过,但是用指针进行引用时,编译器会报错。

编译器是MDK。错误如下。

其实,这是对C语言的不理解造成的。据我所知,解决这个问题的方法至少有如下几种:

1、强制转换

char * a;
const char b[] ={1,2,3,4};
a = (char *)b;


2、因为const修饰的东西是不能改变的,所以我们也可以直接把引用指针声明const,这样指针是可以移动的,但是指针所指的内容是无法修改的

const char * a;
const char b[] ={1,2,3,4};
a = b;
a ++;

你可能感兴趣的:(编程技巧)