我正在尝试创建一个具有获取int函数的程序,并使用指针将int增加1。
这是我试图做的但它不起作用......
#include <stdio.h>
#include <stdlib.h>
void inc(int x);
int main()
{
int x = 0;
printf("Please enter a number : ");
scanf("%d", &x);
printf("The value of 'x' before the function is - '%d'\n", x);
inc(x);
printf("The value of 'x' after the function is - '%d'\n", x);
system("PAUSE");
return 0;
}
void inc(int x)
{
int* px = &x;
*px = x + 1;
}
答案 0 :(得分:1)
您现有的代码会将值的副本传递给函数,并且此副本会递增,因此原始代码将保持不变。
相反,您必须传递指针并重新分配指针指向的位置。
#include <stdio.h>
#include <stdlib.h>
void inc(int *x);
int main()
{
int x = 0;
printf("Please enter a number : ");
scanf("%d", &x);
printf("The value of 'x' before the function is - '%d'\n", x);
inc(&x);
printf("The value of 'x' after the function is - '%d'\n", x);
return 0;
}
void inc(int *x)
{
*x = *x+1;
}