C++的一道习题
解释下列的定义,指出其中哪些是非法的:1:inti;2:constintic3:constint*pic4:int*constcpi5:constint*constcpi...
解释下列的定义,指出其中哪些是非法的:
1:int i;
2:const int ic
3:const int *pic
4:int *const cpi
5:const int *const cpic 4非法,没有初始化。
下列哪些初始化是非法的?为什么?
6:int i=-1;
7:const int ic=i;
8:const int *pic=&ic
9:int *const cpi=⁣
10:const int *const cpic=&i; 1 3 4 5非法。
根据上述定义,下列哪些赋值运算是合法的,为什么?
11:i=ic;
12:pic=⁣
13:cpi=pic;
14:pic=cprc;
15:cprc=⁣
16:ic=*cpic; 真不懂。
//请指出上述的错误,并说明原因。 展开
1:int i;
2:const int ic
3:const int *pic
4:int *const cpi
5:const int *const cpic 4非法,没有初始化。
下列哪些初始化是非法的?为什么?
6:int i=-1;
7:const int ic=i;
8:const int *pic=&ic
9:int *const cpi=⁣
10:const int *const cpic=&i; 1 3 4 5非法。
根据上述定义,下列哪些赋值运算是合法的,为什么?
11:i=ic;
12:pic=⁣
13:cpi=pic;
14:pic=cprc;
15:cprc=⁣
16:ic=*cpic; 真不懂。
//请指出上述的错误,并说明原因。 展开
2个回答
展开全部
int i //声明一个整型变量
const int ic //声明了一个 整形常量,常量必须在声明的时候就初始化,这个声明也是不合法的。
并且常量一旦在声明中初始化,以后的赋值都是错误的。
const int * pic // 声明了一个 指向 整型常量 的一个指针,这种情况下,指针本身能够改变,就是
能够改变指针的值让它指向另外一个整型常量。 但是,指针指向的 整型常量不
能改变。即 pic 可以改变, *pic不可以改变
int * const cpi // 声明了一个指向整型的 常量指针,与上面相反,这次,指针本身的值不能改变,
但指针指向的整型变量能改变。即 cpi不可以改变, *cpi可以改变
const int* const cpi //显而易见, 这次是 无论指针本身 还是他指向的整型变量都不能改变
即 cpi不可以改变, *cpi也不可以改变
具体到你的题目:
6 是对的
7 是对的
8是对的
9 是错的 因为9中的cpi 虽然自己不能改变,但是他指向的值可以改变,但是此时他指向一个
ic 是一个整型常量,即cpi可能改变常量的值,当然是错的咯
10 是对的
其他的就不说了哈, 总之, 常量 必须在 声明的时候就初始化,不初始化就是错的! 一旦初始化后 在改变他 也是错的!这句话对指针常量和整型常量都成立!
const int ic //声明了一个 整形常量,常量必须在声明的时候就初始化,这个声明也是不合法的。
并且常量一旦在声明中初始化,以后的赋值都是错误的。
const int * pic // 声明了一个 指向 整型常量 的一个指针,这种情况下,指针本身能够改变,就是
能够改变指针的值让它指向另外一个整型常量。 但是,指针指向的 整型常量不
能改变。即 pic 可以改变, *pic不可以改变
int * const cpi // 声明了一个指向整型的 常量指针,与上面相反,这次,指针本身的值不能改变,
但指针指向的整型变量能改变。即 cpi不可以改变, *cpi可以改变
const int* const cpi //显而易见, 这次是 无论指针本身 还是他指向的整型变量都不能改变
即 cpi不可以改变, *cpi也不可以改变
具体到你的题目:
6 是对的
7 是对的
8是对的
9 是错的 因为9中的cpi 虽然自己不能改变,但是他指向的值可以改变,但是此时他指向一个
ic 是一个整型常量,即cpi可能改变常量的值,当然是错的咯
10 是对的
其他的就不说了哈, 总之, 常量 必须在 声明的时候就初始化,不初始化就是错的! 一旦初始化后 在改变他 也是错的!这句话对指针常量和整型常量都成立!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询