gpt4 book ai didi

c++ - c++ 上的方法与 java 的比较(从 java 到 c++ 的语法)

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:03 25 4
gpt4 key购买 nike

我开始使用 C++ 编写代码,我有良好的 Java 背景,但我对 C++ 的语法有一些疑问。我坚持一件事,我创建了一个方法“SortCloums”,但我遗漏了一些东西。在 for 循环中,它给我按摩:

expression must have pointer-to-object type

这是我的短代码,是的,我还在学习指针。需要你们的指导。

#include <iostream>
using namespace std;

const int size = 4;
void SortCloums(int arr[size][size], int sizeOfArray);
int main(){

int arr[size][size] = { { 0, 4, 6, 0 },
{5, 6 , 8, 12},
{50, 8, 12, 24},
{900, 10, 30, 50} };

SortCloums(arr, size);
return 0;
}

void SortCloums(int arr ,int sizeOfArray) {
// now we check if the array is column sorted or not.
bool flag = true;

for (int i = 0; i < sizeOfArray && flag != false; i++){
for (int j = 0; j < sizeOfArray && flag != false; j++){
if (arr[j][i] > arr[j+1][i]){
flag = false;
std::cout << "The array of column unsorted" << endl;
std::cin.get();
}
}
}
if (flag == true){
std::cout << "The array is column sorted" << endl;
std::cin.get();
}
}

最佳答案

我猜错误消息指向这一行:

    if (arr[j][i] > arr[j+1][i]){

此代码将 arr 视为二维数组。但是 arr 在这里以错误的方式声明:

void SortCloums(int arr ,int sizeOfArray) {

由于声明先于使用,编译器认为声明正确,使用不正确。所以它输出了一个不是很清楚的错误信息。

要修复,请正确声明 arr:

void SortCloums(int arr[size][size], int sizeOfArray) {

这里 arr 在概念上是一个二维数组,但是对于 various technical reasons它在形式上是一个指向数组的指针。您的错误消息提到了“指向对象的指针”类型; “指向数组的指针”是这种情况的特例,因此这可以修复错误。

关于c++ - c++ 上的方法与 java 的比较(从 java 到 c++ 的语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49058720/

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