游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7683|回复: 17

char a[10]="aaa"的问题

[复制链接]

29

主题

153

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2006-10-23 19:13:00 | 显示全部楼层 |阅读模式
char a[10];
cin>>a;
cout<<a;

char a[10];
a="aaa";
cout<<a;

第2种写法为什么会出问题?
error C2440: '=' : cannot convert from 'char [4]' to 'char [10]'
        There is no context in which this conversion is possible

8

主题

310

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2006-10-23 20:01:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

"aaa"是const char*
类型不匹配

8

主题

310

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
QQ
发表于 2006-10-23 20:04:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

char* a="aaa";
cout<<a;

38

主题

275

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2006-10-23 20:28:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

恕我直言,楼主BASIC学多了....

strcpy( a, "aaa" );

12

主题

124

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2006-10-23 22:26:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

楼主是典型的混淆 指针 和 数组首地址 的行为。

29

主题

153

帖子

189

积分

注册会员

Rank: 2

积分
189
 楼主| 发表于 2006-10-24 06:27:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

的确是混淆了,学的东西越多,问题就越多
PS:没学过什么BASIC

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-10-24 10:59:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

1. 类型 变量名 = 值;
2. 类型 变量名;
    变量名 = 值;

两者是不相同的,其中
1.  copy constructor
2.  operator = ()
可见调用也是不同的
LZ可以自已写个class,分别实现ctor和operator =然后设断点测试

而对于POD类型的array变量
当char a[10] = "aaa",其实是const char a[10] = "aaa\0\0\0\0\0\0\0"; 原因是"aaa"其实是"aaa\0",当right side的个数与left side的[]不同时,compiler会自动以right side的最后一个字符进行复制。常见的将数组初始清零即可写为 a = {0},struct同理。
当 a = "aaa",其实a的类型可视为char *,而将a的地址指向"aaa"处并不会改变原[10]中的数据,而且这样操作是错误的。而字符串正确的复制应该调用strcpy/strncpy之类的函数,其本身也就是per char copy。

PS,对LZ而言可能讲得深了点,不过留个印象,日后遇见问题回想起来,也不旺我打一堆字。

12

主题

124

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2006-10-24 20:08:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

千里马肝现在咋这么热情了咧?
记得你原来在 CSDN 的游戏频道就是成天灌水来着。^_^
看来还是需要好的环境呀。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-10-25 10:00:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

那你一定是在灌水区看到的
而且,那个地方不叫CSDN的游戏频道,它叫CGD,最早叫游戏五月
你可以再去看看我在CGD上的注册时间和站内的C++版块

12

主题

124

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2006-10-25 11:37:00 | 显示全部楼层

Re:char a[10]="aaa"的问题

确实是CGD,有空再去看那边,不好意思了,哈。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 18:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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