#include <stdio.h>
int main(void)
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int* const p = a;
//测试1:(由于影响编译,因此将其注释掉,与其他测试并非在同一次中进行)
//能否用一个数组变量来初始化一个数组变量?
//能否用一个const指针来初始化一个const指针?
/*
int b[10] = a; //编译无法通过 error:invalid initializer
//非法的初始化,因此不可以用一个数组变量来初始化一个数组变量
int* const q = p; //编译通过,这也是通常的用法
printf("q=%p,p=%p\n", q, p); //运行结果 q=0022FEE0,p=0022FEE0
//可见q和p是一样的,因此可以用一个const指针来初始化一个const指针
*/
//测试2:(由于影响编译,因此将其注释掉,与其他测试并非在同一次中进行)
//能否用一个数组变量来初始化一个const指针?
//能否用一个const指针来初始化一个数组变量?
/*
int* const q = a; //编译通过,这也是通常的用法
printf("q=%p,a=%p\n", q, a); //运行结果 q=0022FEE0,a=0022FEE0
//可见q和a是一样的,因此可以用一个数组变量来初始化一个const指针
int b[10] = p; //编译无法通过 error&
测试程序如下,发现数组变量a和const指针p在 初始化、sizeof()运算、&运算 上有所不同。
最新推荐文章于 2024-05-28 18:08:43 发布