关于C函数输出的问题。

bandaoyu 2012-05-04 11:30:53
我定义了
void ZIGBEE_set(char* Net_ID_str,char* Channel_str )
{
……

if(Channel_str[0]=='0')
{
Channel_str[0]=Channel_str[1];
Channel_str[1]=0x00;
}

zigbee_NetCh_sel(Channel_str);

}
然后这样子调用:

ZIGBEE_set("FE","0F");


我的本意是,参数是第一个带‘0’的时候,会把F提前到第一位置,"0F"变成"F",然后调用 zigbee_NetCh_sel(Channel_str); 发出去。
但是我发现经过Channel_str[0]=Channel_str[1];
Channel_str[1]=0x00;
后,我在watch 窗口内看,看到Channel_str[0]依然是’0',Channel_str[1]依然是‘F’ 没有任何变化,这是为什呢?
我已经赋值了呀。


我以前都是这么用的,比如我定义:全局变量 IMEI_str[16]={0};

void get_gprs_mode_imei(char *imei)
{
char *Pimei;
int i=0;
Pimei=IMEInumber();
for(i=0;i<15;i++)
{
imei[i]=*Pimei;
Pimei++;
}

}
调用:
get_gprs_mode_imei(IMEI_str);

这样我的IMEI_str内就存放用imei号码了,就是这样调用的呀,上面的为什么不可以?
...全文
90 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
relaxisland 2012-05-05
  • 打赏
  • 举报
回复
应该会爆掉吧

ZIGBEE_set("FE","0F"); 里面的两个字符串都是常数区,是不能被修改的

你要类似于以前的例子,把他先赋值给一个 局部变量或全局变量的数组
bandaoyu 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
应该会爆掉吧

ZIGBEE_set("FE","0F"); 里面的两个字符串都是常数区,是不能被修改的

你要类似于以前的例子,把他先赋值给一个 局部变量或全局变量的数组
[/Quote]
还真是这样的!!~给分

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧