cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1293|回复: 6

字符串疑问

[复制链接]
发表于 2009-6-17 19:53:37 | 显示全部楼层 |阅读模式
刚开始学CVI,有个问题请教大家:void UpdateTextBox (char* event_gen)
//参数event_gen为指向字符串的指针
{
    char display_str[100];
   
    // Fmt函数位于格式化和I/O函数库中,用来改变变量的形式
    Fmt(display_str, "%s<%s\n", event_gen);

    //显示所发生事件消息   
    SetCtrlVal (panelHandle, PANEL_TEXTBOX, display_str);
}
 楼主| 发表于 2009-6-17 19:56:35 | 显示全部楼层
不好意思,不小心发出去了,我的问题是这个函数里,前面用char* event_gen定义字符串,后面用char display_str[100];定义字符串,为什么要这样?两者有什么区别?
 楼主| 发表于 2009-6-18 08:28:17 | 显示全部楼层
怎么没有人回呢?
发表于 2009-6-18 18:00:51 | 显示全部楼层
兄弟啊,看看C语言的书吧.前面是字符指针,后面是字符串数组.
 楼主| 发表于 2009-6-19 08:30:49 | 显示全部楼层
这个我当然明白,我就是不明白为什么可以这样用.
发表于 2009-6-19 08:42:19 | 显示全部楼层
1、函数中参数为指针或数组涉及到传引用(指针)还是传值(此指数组)的问题:简单地说,传引用可以直接在函数调用中修改原数据;而传值只是修改原数据的一个拷贝(具体可以参看相关文献)!
2、上述代码本身就有一个严重的问题:当 event_gen指向一个超过100字节的字符串时,你将会明白发生什么!——许多软件中的“Bug”就是这样“不经意”而造成的!
 楼主| 发表于 2009-6-19 13:13:55 | 显示全部楼层
谢谢netcreature,还是你够专业
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-20 22:39 , Processed in 0.721505 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表