Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C指针错误_C_Pointers - Fatal编程技术网

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

我用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, *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
是type
int
g
是type
int*

假设希望
g
指向变量
x
,请改为这样做

int * g = &x;
或者这样做,这可能更清楚:

int *g;
g = &x;

行:
int*g=x
定义类型为
int*
的变量
g
,然后将
x
的值赋给它

展开后,这可以理解为:

int *g;
g = x;
这显然不是你想要的,因为
x
是type
int
g
是type
int*

假设希望
g
指向变量
x
,请改为这样做

int * g = &x;
或者这样做,这可能更清楚:

int *g;
g = &x;

你能更新你的描述来真正地建议你真正想要做什么吗?你的代码一点也不清楚。你能更新你的描述来实际建议你真正想做什么吗?你的代码一点也不清楚。