我应该使用一个函数为变量赋值初始值,但不明白为什么我的代码中的初始化函数没有初始化a,b,c,它会给出一些垃圾数。此外,我应该使用一个旋转函数使用变量a,b,c的静态声明,但由于它的静态它不交换变量。我如何做到这一点?初始化变量的函数C
void init(int num1, int num2, int num3);
int main(void){
int a, b, c;
init(a, b, c);
printf("a=%d, b=%d, c=%d\n", a, b, c);
rotate();
return 0;
}
void init(int num1, int num2, int num3){
printf("Enter value for num1: ");
scanf("%d",&num1);
printf("Enter values for num2: ");
scanf("%d",&num2);
printf("Enter values for num3: ");
scanf("%d",&num3);
}
void rotate(void){
static int a,b,c;
int temp;
temp=a;
a=b;
b=c;
c=temp;}
对于c你需要传递变量地址(指针)来从函数内初始化它们。 – 2014-10-17 16:53:49
但我必须使用void init(int num1,int num2,int num3),而不是void init(int * num1,int * num2,int * num3),在这种情况下,我可以如何使用指针 – 2014-10-17 16:56:55
这不会使很有道理。它被传递的价值;它不是*和你传递的相同'numN'。 – ChiefTwoPencils 2014-10-17 16:58:12