- 论坛徽章:
- 0
|
int main()
{
int i=0;
const int *n;
int o=5;
int a[5]={1,2,3,4,5};
// a[0]=i;
int b[3]={1,2,3};
int *const l=b;
//1.赋值
const int p=o;
const int * const q=a ;
n=&o;
b[0]++;
o++;
//1.end
printf("int %d ---const * %d ---const %d ---* const %d\n",o,*n,p,*l);
for(i=0;i<5;i++,a[0]=i)
printf("i=%d--- %d ---- %o\n",i,*(q),q);
}
|
输出结果为
int 6 ---const * 6 ---const 5 ---* const 2
i=0--- 1 ---- 27757561724 //注意这里是1
i=1--- 1 ---- 27757561724
i=2--- 2 ---- 27757561724
i=3--- 3 ---- 27757561724
i=4--- 4 ---- 27757561724
|
把a[0]=i;的注释去掉,则输出结果变为
int 6 ---const * 6 ---const 5 ---* const 2
i=0--- 0 ---- 27755555504 //这里变成了0
i=1--- 1 ---- 27755555504
i=2--- 2 ---- 27755555504
i=3--- 3 ---- 27755555504
i=4--- 4 ---- 27755555504
|
这说明const 只在预定义的时候初始化了一次,后面的忽略了一次,为什么这样自设计? |
|