#include <stdio.h>
void swap(int *i, int *j)
{
int t;
t = *i;
*i = *j;
*j = t;
}
void main()
{
int i,j;
i=5;
j=10;
printf("%d %d\n",i,j);
swap(&i,&j);
printf("%d %d\n",i,j);
}
这个小程序交换两个变量会不会有问题,因为函数内部的i,j作为指针工作,而main内部包含数字?我应该使用其他字母,例如a,b而不是i,j在main里面?
答案 0 :(得分:4)
变量是它们定义范围的本地变量,因此根本不应该是一个问题。
答案 1 :(得分:4)
变量仅在您创建它们的函数内“实时”生效。换句话说,i
中的main
与i
中的swap
完全不同。
您的代码仅偶然引用相同的变量。
如果变量已在全局范围内声明(在任何函数之外),那么您可能会遇到问题。
所以不,在这种情况下完全没问题。狂野(但不是太狂野;如果事情变得太疯狂,或者对于阅读代码的任何人,请考虑更改名称......)