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; 真不懂。
//请指出上述的错误,并说明原因。
展开
 我来答
whut_cst_czw
2012-03-21 · 超过21用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:34.3万
展开全部
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 是对的
其他的就不说了哈, 总之, 常量 必须在 声明的时候就初始化,不初始化就是错的! 一旦初始化后 在改变他 也是错的!这句话对指针常量和整型常量都成立!
1152301745
2012-03-21
知道答主
回答量:43
采纳率:0%
帮助的人:9.4万
展开全部
解释下列的定义,指出其中哪些是非法的:
1:int i;//合法的
2:const int ic//不合法
3:const int *pic//合法
4:int *const cpi//不合法
5:const int *const cpic 4非法,没有初始化。
追问
为什么const int ic不合法?求请教
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式