int i=n; 只是把n的值赋给变量i了,变量i和变量n存储在不同的内存上,所以变量i不会随着n的改变而改变;
如果变量i为int指针,然后用下面这种方式赋值,(int *i=&n),就是把指针变量i就是指向的变量n,(*i)的值就会和n的值相同,因为它们是同一块内存的值。
测试代码如下:
#include <stdio.h>
int main(void){
int n;
scanf("%d",&n);
int fact=1;
int i=n;
//int * i=&n;
for(n=n;n>1;n--){
fact*=n;
}
printf("%d!=%d\n",i,fact);
// printf("%d!=%d\n",*i,fact);
return 0;
}