首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

数组有关问题

2012-03-09 
数组问题#includevcl.h#pragmahdrstop#include iostream.h//---------------------------------------

数组问题
#include   <vcl.h>
#pragma   hdrstop
#include <iostream.h>
//---------------------------------------

#pragma   argsused
class   sl{
                int   a;
                char   b[20];
    public:
        void   m();
            };
void   sl::m()
{
      a   =   10;
      b[20]     =   { "dfdafa "};//提示错误为:[C++   Error]   Unit1.cpp(18):   E2188   Expression   syntax
          cout < <a < <endl;
          cout < <b < <endl;
}
int   main(int   argc,   char*   argv[])
{

      sl   e;
      e.m();

    cin.get();
                return   0;
}

请高手解释以下什么不能运行,错误出在哪里?



[解决办法]
void sl::m()
{
a = 10;
memset(b, 0, 20);
strcpy(b, "dfdafa ");
cout < <a < <endl;
cout < <b < <endl;
}

[解决办法]
char b[20];//数组b有20个字符的空间,但是下标最大就到19.
...
b[20] = { "dfdafa "};//所以这个元素根本不存在,更无法赋值。


要为数组赋值,可以使用楼上的方法。也可以为每个元素赋值
b[0]= 'd ';
b[1]= 'f ';
...

还可以在创建的时候赋值
char b[20]= "dfdafa ";
[解决办法]
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
//---------------------------------------

#pragma argsused
class sl{
int a;
char b[20];
public:
void m();
};
void sl::m()
{
a = 10;
//数组好像不可以这样赋值的,
// b[20] = { "dfdafa "};//提示错误为:[C++ Error] Unit1.cpp(18):E2188 Expression syntax
//这样就可以了
memset(b, 0, 20);
strcpy(b, "dfdafa ");
cout < <a < <endl;
cout < <b < <endl;
}
int main(int argc, char* argv[])
{

sl e;
e.m();

cin.get();
return 0;
}
[解决办法]
void sl::m()
{
a = 10;
memset(b, 0, 20);
strcpy(b, "dfdafa");
cout < <a < <endl;
cout < <b < <endl;
}

热点排行