我正在学习C,并且发现了类似的东西。
#include <stdio.h>
void func(int* y) {
int x = 1;
*y = 2;
y = &x;
}
int main(int argc, char** argv) {
int x = 3;
int* x_ptr = &x;
printf("Value before call: %d\n", x);
printf("Pointer before function call: %p\n",(void*)x_ptr);
func(x_ptr);
printf("Value after call: %d\n", x);
printf("Pointer after function call: %p\n",(void*)x_ptr);
return 0;
}
我不知道为什么使用(void *)x_ptr int *强制转换。为什么要使用int *来使演员表无效?谢谢您的帮助。