首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C函数输出的有关问题

2012-05-06 
关于C函数输出的问题。我定义了void ZIGBEE_set(char* Net_ID_str,char* Channel_str ){……if(Channel_str[0

关于C函数输出的问题。
我定义了
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号码了,就是这样调用的呀,上面的为什么不可以?

[解决办法]
应该会爆掉吧

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

你要类似于以前的例子,把他先赋值给一个 局部变量或全局变量的数组

热点排行