C++方法与Java的比较(从Java到C ++的语法)
method on c++ compared to java (syntax from java to c++)
我开始在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
在概念上是一个二维数组,但由于各种技术原因,它正式是一个指向数组的指针。您的错误消息提到"指向对象的指针"类型;"指向数组的指针"是这种情况的特例,因此可以修复错误。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 在java中解决这段代码时面临循环中的问题
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 尝试用java代码编译和运行c++代码
- 在这种情况下,java对象是否可以调用本机函数
- 在java中读取c++字节的位字段
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?
- 使用已使用 java 编码的 openssl 解码数据
- 为什么Java和C++在语法上有相似之处
- C++方法与Java的比较(从Java到C ++的语法)
- 需要解释这个Java对象初始化语法
- c++中结构和指针的语法,相当于Java
- 从类似bif的语法到Java或c++
- 移植java脚本数组push json到c++语法的最佳方式
- Java中是否存在类似C++的成员初始化列表语法