大家好,请教一下,单片机C语言,请问函数内改变实参是否合法?
代码和运行结果如下图,运行结果是正确的,都说函数内是无法更改实参的,但是这个运行结果,却显示,在函数内,实参已经发生了变化,当然,函数结束后,实参还是没有变化。
请教一下,像这种语法,是否合法?是否要在函数内定义一个变量:
unsigned char dat2=dat;
然后在函数内操作 dat2,这样才更稳妥?或者说定义 dat2 完全是画蛇添足?
#include <stdio.h>
unsigned char count;
void test(unsigned char dat)
{
while(dat--)
{
printf("dat=0x%X\n", dat);
}
}
int main(void)
{
count=8;
test(count);
printf("count=0x%X\n", count);
}
|