??c语言中,常变量是指被const关键字修饰的变量,其值一般在定义的时候初始化,之后不允许赋值改变其值。若常变量作为左值,试图对常变量赋值,编译器会报错,如以下例子。
#include <stdio.h>
#include <memory.h>
int main(void)
{
const double a;
const double array[3];
a = 1.0;
array[0] = 2.0;
return 0;
}
??那么,常变量真的没有办法改变其值吗?非也!既然无法直接赋值改变其值,我们可以采用其他方式,用memcpy!且看,如下代码:
#include <stdio.h>
#include <memory.h>
int main(void)
{
const double a = 0.0;
const double array[3] = { 0.0, 0.0, 0.0 };
double a2 = 1.0;
double array2[3] = { 1.0, 2.0, 3.0 };
memcpy(&a, &a2, sizeof(double));
memcpy(array, array2, sizeof(array2));
printf("a:%f\n", a);
printf("array:%f %f %f\n", array[0], array[1], array[2]);
getchar();
return 0;
}

|