变量(variable) 是源代码中表示一个存储场所、保存值的符号化地址。
这是C/Java中关于变量的名词解释。
1.抽象
例如
int x=80;
变量x表示了内存中的某一块区间,例如从0013fed8到0013fedb这4字节,该4字节共同保存整数80;通常程序员不会在意、也不可能考虑x的具体位置,只要知道在程序中x表示某个位置,因此说x是符号化地址,是对数据的存储场所的抽象。
如果程序中需要知道x的具体位置怎么办?这就引入了指针这一概念。程序员仍然使用符号化地址即变量,而这种新型变量保存的值,这是一个内存编址。
不要将变量直接理解成数学上的概念,或者说,不要看有“变量不同于常量,...”这种说法的垃圾书,变量不和文字/常量相比较。变量的值有两种,一种是可变的,const变量的值则是不可变的。
2.变量与函数名
某种程度上,函数原型的声明语句,可以理解成声明一个变量,请比较
int arr[5];
void foo (void);//
你可以把arr和foo 作为const变量。这里,你要注意C语言中,arr和foo 的不统一的问题。对于函数foo,有指针pt2Func时,
void (*pt2Func)(void) = NULL;
我们可以
pt2Func = &foo; //标准
pt2Func = foo; //简写
但是,arr与&arr类型不同。