CString 二维数组赋值

weina1016 2014-04-27 01:37:48

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


error C2059: 语法错误 : “{”
error C2143: 语法错误 : 缺少“;”(在“{”的前面)
error C2143: 语法错误 : 缺少“;”(在“}”的前面)
为什么赋值不对呢??
...全文
756 15 打赏 收藏 转发到动态 举报
写回复
用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","","",""}
}; 
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

65,210

社区成员

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

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