找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1478|回复: 5

这样赋值没错?为什么呢?

[复制链接]
发表于 2009-11-4 02:26:16 | 显示全部楼层 |阅读模式 IP:江苏扬州
这样赋值没错?为什么呢?我以为常量不能重新赋值,可是下面的程序可以得到答案
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;
}
发表于 2009-11-4 02:26:17 | 显示全部楼层 IP:江苏扬州
const int b=2;是常量。不能再赋值。

const char *p2="bbb";是常量指针,不可以写指针地址内的数据,但是好象可以改指针指向的地址
如果改成const char * const p2="bbb";就安全拉
回复

使用道具 举报

发表于 2009-11-4 02:26:18 | 显示全部楼层 IP:江苏扬州
如楼上所说,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修改后面的值,也不能将指针指向其他的地方。
回复

使用道具 举报

发表于 2009-11-4 02:26:19 | 显示全部楼层 IP:江苏扬州
区分一下:指针常量和常量指针这两个概念
另外,再理解这下这句:const指针所指对象的值能否修改取决于所指对象类型是否为const
回复

使用道具 举报

发表于 2009-11-4 02:26:20 | 显示全部楼层 IP:江苏扬州
请帮忙分析这个程序错的原因
#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;
}
回复

使用道具 举报

发表于 2009-11-4 02:26:22 | 显示全部楼层 IP:江苏扬州
不好意思 与题无关,发新贴发错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 07:45 , Processed in 0.140122 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表