搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 这样赋值没错?为什么呢?
标题:
这样赋值没错?为什么呢?
只看楼主
lindayanglong
等 级:
新手上路
帖 子:86
专家分:0
注 册:2008-3-9
楼主
问题点数:0 回复次数:5
这样赋值没错?为什么呢?
这样赋值没错?为什么呢?我以为常量不能重新赋值,可是下面的程序可以得到答案
void main()
{
char *p1="aaa";
const char *p2="bbb";
p2=p1;
cout<<p2<<endl;
}
但是如果给常量整型数再次赋值确实不行 ,比如下面的程序,为什么呢?
void main()
{
int a=1;
const int b=2;
b=a;
cout<<b<<endl;
}
搜索更多相关主题的帖子:
赋值
2008-10-09 15:38
lockhawk
等 级:
新手上路
帖 子:94
专家分:0
注 册:2008-9-17
第
2
楼
得分:0
const int b=2;是常量。不能再赋值。
const char *p2="bbb";是常量指针,不可以写指针地址内的数据,但是好象可以改指针指向的地址
如果改成const char * const p2="bbb";就安全拉
人生最大痛苦:虽然不明白你们说什么,但还是要听!
2008-10-09 16:45
rennyzh
等 级:
新手上路
帖 子:9
专家分:0
注 册:2008-9-12
第
3
楼
得分:0
如楼上所说,const int b = 2;表明变量b是一个常量,不能够再对它进行赋值,但语句const char* p2 = "bbb",则只能说明不能通过指针p2修改"bbb"的值,如重新使p2[1] = 'a';但还是可以把指针p2指向其他的地方,如果要想使指针不能指向其他的地方,可以使用这样的语句:char* const p2 = "bbb"; 而如果使用const char* const p2 = "bbb";则达到上面的两个效果,既不能通过指针p2修改后面的值,也不能将指针指向其他的地方。
2008-10-09 17:18
blueboy82006
来 自:幻想世界
等 级:
贵宾
威 望:
16
帖 子:1227
专家分:57
注 册:2007-7-23
第
4
楼
得分:0
区分一下:指针常量和常量指针这两个概念
另外,再理解这下这句:const指针所指对象的值能否修改取决于所指对象类型是否为const
无
2008-10-09 17:41
lindayanglong
等 级:
新手上路
帖 子:86
专家分:0
注 册:2008-3-9
第
5
楼
得分:0
请帮忙分析这个程序错的原因
请帮忙分析这个程序错的原因
#include<iostream>
using namespace std;
void swap(int *p1,int *p2)
{
int *a;
*a=*p1;
*p1=*p2;
*p2=*a;
}
void main()
{
int a=5,b=3;
swap(&a,&b);
cout<<a<<" "<<b<<" "<<endl;
}
2008-10-10 16:47
lindayanglong
等 级:
新手上路
帖 子:86
专家分:0
注 册:2008-3-9
第
6
楼
得分:0
不好意思 与题无关,发新贴发错了
2008-10-10 16:51
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-237230-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.152703 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved