c++ - 编译错误:从“int*”到“int”的无效转换 [-fpermissive]|
问题描述
错误显示在下一行
int sum = arr[i][j] + arr[i][j+1] + arr[j+2] + arr[i+1][j+1] + arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2];
我的代码如下,
#include<bits/stdc++.h>
using namespace std;
int main(){
int arr[6][6];
for(int i=0;i<6;i++)
for(int j=0;j<6;j++) cin>>arr[i][j];
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
{
int sum = arr[i][j] + arr[i][j+1] + arr[j+2] + arr[i+1][j+1] + arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2];
cout<<sum;
}
return 0;
}
解决方案
int sum = arr[i][j] + arr[i][j+1] + arr[j+2] + ...
// ^^^^^^^^
您在此处缺少一个维度(在^
标记上方),arr[j+2]
它是一个整数指针(从技术上讲,它是一个数组,但它在此处衰减为一个整数指针),这是您的编译器在输出时抱怨的invalid conversion from 'int*' to 'int'
。
根据代码,很难判断另一个维度应该是什么,但它肯定应该是这样的:
arr[i+SOMETHING][j+2]
推荐阅读
- java - 在数据库中插入数据时如何解决 SQLiteException 错误
- excel - 消除Excel中的字符
- sql - 以下代码片段 [!= N''] 的用途是什么
- typescript - 打字稿:定义对象类型而不定义键的类型以获取 keyof
- google-app-engine - Google Kubernetes Engine 服务无法连接到 Snowflake
- rust - 使用通道时 Rust 中的内存分配
- excel - 使用 instr 函数读取逗号的位置,其中包含大量数字
- c - 只要输入有效,就继续运行程序
- google-apps-script - Google表格:查找范围内的最后一行 - 自定义公式
- reactjs - 如何禁用按钮,直到给出用户输入并且它只包含 5 个字符?