字符串疑问
刚开始学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);
} 不好意思,不小心发出去了,我的问题是这个函数里,前面用char* event_gen定义字符串,后面用char display_str;定义字符串,为什么要这样?两者有什么区别? 怎么没有人回呢? 兄弟啊,看看C语言的书吧.前面是字符指针,后面是字符串数组. 这个我当然明白,我就是不明白为什么可以这样用. 1、函数中参数为指针或数组涉及到传引用(指针)还是传值(此指数组)的问题:简单地说,传引用可以直接在函数调用中修改原数据;而传值只是修改原数据的一个拷贝(具体可以参看相关文献)!
2、上述代码本身就有一个严重的问题:当 event_gen指向一个超过100字节的字符串时,你将会明白发生什么!——许多软件中的“Bug”就是这样“不经意”而造成的! 谢谢netcreature,还是你够专业
页:
[1]