| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9245 人关注过本帖
标题:char*指针赋值问题
只看楼主 加入收藏
银灯玉箫
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-26
结帖率:0
收藏
 问题点数:0 回复次数:6 
char*指针赋值问题
#include <iostream>
using namespace std;
int main()
{
    char* p1 = new char[10];
   
    char a[100] = "rbrbrr";
    a = p1;//    错误IntelliSense: expression must be a modifiable lvalue
    cout<<p1<<endl;
    cout<<a<<endl;
    system("pause");
    return 0;
}
求解,为什么同是char*类型,a不能被赋指针值?
搜索更多相关主题的帖子: namespace expression include 
2013-04-29 10:16
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
因为数组一旦定义就会被分配一片连续的空间,因此数组的首地址是不变的,因此可以说数组名是一个常量指针,所以不可以被赋值

练就一身本领,只为笑傲江湖!
2013-04-29 12:05
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
#include <iostream>
using namespace std;
int main()
{
    char* p1 = new char[10];
   
    char a[100] = "rbrbrr";
    //a = p1;  数组的
    p1=a;
    cout<<p1<<endl;
    cout<<a<<endl;
    system("pause");
    return 0;
}
注意:不能直接给字符数组赋值

Maybe
2013-04-29 20:19
逆水寒刘
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:76
专家分:117
注 册:2013-3-27
收藏
得分:0 
数组一旦被定义,系统就会给他分配一个地址,也就是所a代表一个地址,是个常量,可以直接输出。对于常量是不允许作为"="中的左值。如你不能写成5=4;一样。
2013-04-29 23:24
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
数组你理解成一个const指针就行了,它不允许再次被指向修改

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-04-29 23:26
qq372505855
Rank: 2
等 级:论坛游民
帖 子:42
专家分:46
注 册:2012-6-20
收藏
得分:0 
好像要用strcpy来给数组赋值,对比两个数组的时候不能用=,而要用strcmp
2013-04-30 08:13
a6523773
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2013-4-30
收藏
得分:0 
数组是不能赋值的~你可以用strcpy或者strcat来使用数组
2013-04-30 23:04
快速回复:char*指针赋值问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016942 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved