kevin_2009 发表于 2009-6-17 19:53:37

字符串疑问

刚开始学CVI,有个问题请教大家:void UpdateTextBox (char* event_gen)
//参数event_gen为指向字符串的指针
{
    char display_str;
   
    // Fmt函数位于格式化和I/O函数库中,用来改变变量的形式
    Fmt(display_str, "%s<%s\n", event_gen);

    //显示所发生事件消息   
    SetCtrlVal (panelHandle, PANEL_TEXTBOX, display_str);
}

kevin_2009 发表于 2009-6-17 19:56:35

不好意思,不小心发出去了,我的问题是这个函数里,前面用char* event_gen定义字符串,后面用char display_str;定义字符串,为什么要这样?两者有什么区别?

kevin_2009 发表于 2009-6-18 08:28:17

怎么没有人回呢?

hcwz 发表于 2009-6-18 18:00:51

兄弟啊,看看C语言的书吧.前面是字符指针,后面是字符串数组.

kevin_2009 发表于 2009-6-19 08:30:49

这个我当然明白,我就是不明白为什么可以这样用.

netcreature 发表于 2009-6-19 08:42:19

1、函数中参数为指针或数组涉及到传引用(指针)还是传值(此指数组)的问题:简单地说,传引用可以直接在函数调用中修改原数据;而传值只是修改原数据的一个拷贝(具体可以参看相关文献)!
2、上述代码本身就有一个严重的问题:当 event_gen指向一个超过100字节的字符串时,你将会明白发生什么!——许多软件中的“Bug”就是这样“不经意”而造成的!

kevin_2009 发表于 2009-6-19 13:13:55

谢谢netcreature,还是你够专业
页: [1]
查看完整版本: 字符串疑问