C指针错误
我用C语言编写了这个程序,我遇到了一个不知道如何修复的错误。请帮我找出错误。 这是我写的代码:C指针错误,c,pointers,C,Pointers,我用C语言编写了这个程序,我遇到了一个不知道如何修复的错误。请帮我找出错误。 这是我写的代码: #include <stdio.h> int main(int argc, char *argv[]){ int x = 98; int *g = x; printf("This is x: %d, and this is g: %i.\n", x, *g); *g=45; printf("This is x: %d, and this is g: %i.\n", x
#include <stdio.h>
int main(int argc, char *argv[]){
int x = 98;
int *g = x;
printf("This is x: %d, and this is g: %i.\n", x, *g);
*g=45;
printf("This is x: %d, and this is g: %i.\n", x, *g);
return 0;
}
感谢前面的帮助。目前,您正在将x中的任何值(98)都分配给指针,而int不是指针,它会警告您。你真正想要的是得到x所在的地址,即指向x的位置。所以
int *g = x;
需要
int *g = &x;
目前,您正在将x中的任何值(98)分配给指针,并且int不是指针,它警告您。你真正想要的是得到x所在的地址,即指向x的位置。所以
int *g = x;
需要
int *g = &x;
行:
int*g=x
定义类型为int*
的变量g
,然后将x
的值赋给它
展开后,这可以理解为:
int *g;
g = x;
这显然不是你想要的,因为x
是typeint
,g
是typeint*
假设希望g
指向变量x
,请改为这样做
int * g = &x;
或者这样做,这可能更清楚:
int *g;
g = &x;
行:
int*g=x
定义类型为int*
的变量g
,然后将x
的值赋给它
展开后,这可以理解为:
int *g;
g = x;
这显然不是你想要的,因为x
是typeint
,g
是typeint*
假设希望g
指向变量x
,请改为这样做
int * g = &x;
或者这样做,这可能更清楚:
int *g;
g = &x;
你能更新你的描述来真正地建议你真正想要做什么吗?你的代码一点也不清楚。你能更新你的描述来实际建议你真正想做什么吗?你的代码一点也不清楚。