为什么形参值一般不参与运算

我看各种语言编写的程序,基本都是:要对形参进行运算就把形参值赋给另一个新定义的变量,然后再运算该变量,而不是直接对形参进行运算。这其中有什么讲究吗?

比如下面这段代码,可以用n进行运算,却要赋给i再进行(这段代码也是我在网上看到的)

//判断n是否为回文数
bool symm(unsigned n){
    unsigned i = n;
    unsigned m = 0;
    while(i > 0){
        m = m * 10 + i % 10;
        i /= 10;
    }
    return m == n;
}

 

没什么讲究

如果形参带& 

直接参与运算会修改形参原来的值

可能就是防止修改到形参的值吧

自己注意就行了,如果不希望形参的值改变,可以添加const

………………我这么说可能有点苛刻了,你还没入门吧。

形参当然可以参加计算啊,没什么讲究,看你的意图和需求是什么。

你贴的这段代码。

1. 要保留传入的参数的值,以便最后一句m == n 判等,所以没让形参参与计算。

2. 又要根据形参的值剥离出它的的个位十位百位上的数子,因此用一个变量 i 先记录下形参的值,然后剥离 i,得到每一位上的数字。

3. 将 usigned m =0;这一句以后所有的 i 换成 n, n换成 i, 你试试输出有变化吗?没有啊。这说明什么?说明你用形参取计算还是另取一个变量去计算没有区别,大兄弟。

没有什么讲究,看需求,看你想用形参这个变量干嘛。

以上