clever101的专栏

use the code to change the world!

一个简单的初始化问题

            

         也许只有实践才知道自己的C语言基础有多薄弱。今天在VC知识库论坛上问了一个弱弱的问题。

我在一个类里声明:

enum { sbf=1024*63 };
    char  m_cBuffer[sbf];

然后在构造函数里初始化:
    m_cBuffer[sbf] = {'/0'};


    
编译时出现了这些错误:

syntax error : '{'
missing ';' before '{'
missing ';' before '}'

  
之后我将这个初始化语句改为memset(m_cBuffer,'/0',sbf);就没有了错误。
为什么不能像之前那样初始化呢?

编译环境:Win2000VC 6.0

 

     经过高手解答我才知道

char  m_cBuffer[sbf];
m_cBuffer[sbf];
是不同的,前者是一个数组,后者是一个元素。

 

    因此只有在声明数组变量的时候才能这么用 char buf[10]= {0}。这也说明编程是一门实践的学问。看书是必要的,但仅靠看书远远不够。只有不断实践才能有所进步。

阅读更多

扫码向博主提问

去开通我的Chat快问

clever101

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • C++
  • RS
  • GIS
  • 计算机图像处理
  • 计算机图形学
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/clever101/article/details/762523
文章标签: 编程 语言 c
个人分类: C/C++
上一篇ParsingError问题的解决
下一篇如何从一个对话框弹出单文档视图
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭