CString 二维数组赋值

weina1016 2014-04-27 01:37:48

VS
CString Str[2][7];
&Str = {
{"6"," ","area","teabc","","",""}
};


error C2059: 语法错误 : “{”
error C2143: 语法错误 : 缺少“;”(在“{”的前面)
error C2143: 语法错误 : 缺少“;”(在“}”的前面)
为什么赋值不对呢??
...全文
666 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mahl2bb 2014-05-02
  • 打赏
  • 举报
回复
CString Str[2][7]; &Str = { {"6"," ","area","teabc","","",""} }; 你这是用的初始化的方法赋值,是不对的,只有定义时可以使用初始化的方法,定义好了之后就初始化完成了,就不能这样赋值了。你可以在初始化时这样赋值,或者定义好之后用循环赋值。
流动的书签 2014-05-01
  • 打赏
  • 举报
回复
纸-_-鸢 2014-04-30
  • 打赏
  • 举报
回复
数组名相当于常量指针,值不能被修改
灰龙001 2014-04-30
  • 打赏
  • 举报
回复
引用 8 楼 weina1016 的回复:
[quote=引用 1 楼 mujiok2003 的回复:]

CString Str[2][7] =  {
{"6","  ","area","teabc","","",""}
}; 
这个就是最基本的,定义的同时赋值嘛。定义好了之后怎样可以快速赋值?比如数组里面的值都是一样的,跟char 的memset类似的[/quote] 因为CString是一个类,里面的字符内容是指向不同的内存地址的,而char数组是连续的内存地址是可以用memset,所以CString只能是for循环什么的一个一个赋值
「已注销」 2014-04-29
  • 打赏
  • 举报
回复
CString Str[2][7]= {
{"6","  ","area","teabc","","",""}
}; 
weina1016 2014-04-29
  • 打赏
  • 举报
回复
引用 4 楼 FengRider 的回复:
[quote=引用 楼主 weina1016 的回复:] VS CString Str[2][7]; &Str = { {"6"," ","area","teabc","","",""} }; error C2059: 语法错误 : “{” error C2143: 语法错误 : 缺少“;”(在“{”的前面) error C2143: 语法错误 : 缺少“;”(在“}”的前面) 为什么赋值不对呢??
第一行是定义了一个CString的二维数组成,系统会为该数组分配空间。 第二行中,'='左边的&Str是指对Str取地址,由于Str是一个数组变量,所以取出来的地址是Str数组的首地址,也就是Str[0][0]的地址。'='是赋值符,你试图将一组字符串的值,赋给一个地址,这怎么做得到呢?[/quote] 我的理解错误,当成指针直接赋值了,那先定义数组之后,怎样能给数组全部都赋一样的初值?
weina1016 2014-04-29
  • 打赏
  • 举报
回复
引用 6 楼 lionghua 的回复:
楼主只需要加#include <atlstr.h>和using namespace std;即可
写C++哪有不加头文件的
weina1016 2014-04-29
  • 打赏
  • 举报
回复
引用 1 楼 mujiok2003 的回复:

CString Str[2][7] =  {
{"6","  ","area","teabc","","",""}
}; 
这个就是最基本的,定义的同时赋值嘛。定义好了之后怎样可以快速赋值?比如数组里面的值都是一样的,跟char 的memset类似的
FengRider 2014-04-28
  • 打赏
  • 举报
回复
引用 楼主 weina1016 的回复:
VS CString Str[2][7]; &Str = { {"6"," ","area","teabc","","",""} }; error C2059: 语法错误 : “{” error C2143: 语法错误 : 缺少“;”(在“{”的前面) error C2143: 语法错误 : 缺少“;”(在“}”的前面) 为什么赋值不对呢??
第一行是定义了一个CString的二维数组成,系统会为该数组分配空间。 第二行中,'='左边的&Str是指对Str取地址,由于Str是一个数组变量,所以取出来的地址是Str数组的首地址,也就是Str[0][0]的地址。'='是赋值符,你试图将一组字符串的值,赋给一个地址,这怎么做得到呢?
Study_Bird 2014-04-28
  • 打赏
  • 举报
回复
CString Str[2][7]= { {"6"," ","area","teabc","","",""} };
赵4老师 2014-04-28
  • 打赏
  • 举报
回复
“变量赋值”和“变量初始化”不是一回事! “变量赋值”发生在运行期,其写法遵循赋值语法规定。 “变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。
epsilonyi 2014-04-28
  • 打赏
  • 举报
回复
进来学习一下
lionghua 2014-04-28
  • 打赏
  • 举报
回复
楼主只需要加#include <atlstr.h>和using namespace std;即可
lionghua 2014-04-28
  • 打赏
  • 举报
回复
在使用了MFC库的工程中CString可以直接使用,在没有使用MFC库的工程中加入 #include <atlstr.h> 要使用STL里的string,要加入 #include <string> 注意,不是string.h 然后在代码的前面写 using namespace std; 就可以了
mujiok2003 2014-04-27
  • 打赏
  • 举报
回复

CString Str[2][7] =  {
{"6","  ","area","teabc","","",""}
}; 

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧