gpt4 book ai didi

c++ - 为什么数组变量的地址不能赋值给指针呢?什么是 'Wfatal-errors' ?

转载 作者:行者123 更新时间:2023-11-30 00:56:50 24 4
gpt4 key购买 nike

我尝试了下面粘贴的代码并得到了一个错误:

cannot convert int (*)[6] to int* in assignment
compilation terminated due to -Wfatal-errors.

#include <stdio.h>

int my_array[] = {1,23,17,4,-5,100};
int *ptr;

int main(void)
{
int i;
ptr = &my_array; /* point our pointer to the first
element of the array */
printf("\n");
for (i = 0; i < 6; i++)
{
printf("my_array[%d] = %d ",i,my_array[i]); /*<-- A */
printf("ptr + %d = %d\n",i, *(ptr + i)); /*<-- B */
}
return 0;
}

最佳答案

ptr = &my_array;

&my_array的类型是int (*)[6]ptr的类型是int*。它们是不兼容的类型。

你应该做的是:

ptr = my_array;

现在 my_array 类型是 int[6],它在上述上下文中衰减为 int*。所以它有效。

关于c++ - 为什么数组变量的地址不能赋值给指针呢?什么是 'Wfatal-errors' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com