在这里,我提供了一个使用指针的简单代码。
void rets(int *px, int *py)
{
*px = 3;
*py = 5;
}
int main()
{
int x, y;
rets(&x, &y);
printf("First is %d, second is %d", x, y);
}
我只是希望它被清除...在声明中:int *px, *py;
,留出两个字节来存储整数变量的地址并给出这个存储空格名称px。它还留出另外两个字节来存储另一个整数变量的地址,并给这个空间命名为 py。星号告诉编译器这些变量将包含地址和不值(如果我没记错的话? ),并且 int 告诉它地址将指向整数变量。但是——这就是很多困惑的根源:
*px = 3;
*py = 5;
这里的使用方式与指针声明中的使用方式略有不同。什么意思?
最佳答案
因此,在函数声明中,您声明了指向 int 的指针,该指针将作为参数传递。在定义中,您取消引用指针,因此实际上使用了 main 中声明的变量空间。如果您没有取消引用,那么您只会更改指针而不是指向的内容。在调用 rets() 的地方,您使用 & 给出了 main 中定义的变量的地址。
关于c - * C 指针中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6148929/