单片机/MCU论坛
直播中

猪饲料

8年用户 21经验值
擅长:嵌入式技术
私信 关注

关于C51指针的用法不懂,求教大神。

/* ADC转换值转为实际电压值的字符串形式,str-字符串指针,val-AD转换值 */
void ValueToString(unsigned char *str, unsigned char val)
{
//电压值=转换结果*2.5V/255,式中的25隐含了一位十进制小数
val = (val*25) / 255;
str[0] = (val/10) + '0'; //整数位字符
str[1] = '.'; //小数点
str[2] = (val%10) + '0'; //小数位字符
str[3] = 'V'; //电压单位
str[4] = ''; //结束符
}
关于这段函数我是有很多地方不懂。。。。。。首先在主函数中是unsigned char str[10]作为实参传递给这个函数的字符串指针,首先我不懂的是,这个函数的第一个形参是指向无符号字符变量的指针,为什么数组和字符串也能传递进来呢?
还有,最疑惑的是,在函数里面,str[0]、str[1]、str[2]、str[3]、str[4]这五个不是指针变量吗?不是只能存储地址吗?为什么可以直接赋值字符呢?另外这个怎么看起来也是在给数组赋值啊?..........好疑惑啊,,指针为什么可以怎么用呢?求教大神,谢谢!

回帖(4)

刘工

2016-4-22 22:43:56
str就是地址,这是指针的常用法,书上有写!
举报

李生

2016-4-23 00:37:17
建议你看一下C语言程序设计字符串指针与数组指针那节
举报

jinyi7016

2016-4-23 13:33:51
数组的名字就是指针的名字
举报

李秋华

2016-4-23 14:26:03
传的是一个地址
举报

更多回帖

发帖
×
20
完善资料,
赚取积分