【问题标题】:C function to print 2D array of charsC函数打印二维字符数组
【发布时间】:2017-12-29 10:12:31
【问题描述】:

我正在尝试学习 C,肯定会使用困难的方法并且无法找出这个错误,有人可以帮忙吗? :-)

#include<stdio.h>
#include <stdlib.h>

#define max_X 15
#define max_Y 15

int x, y;

char Array[max_Y][max_X];

void displayArray(void){
 for (y = 0; y < max_Y; y++) {
    for (x = 0; x < max_X; x++) {
        printf("%c",Array[y][x]);
    }
    printf("\n");
 }
}



int main(void){
 for (y = 0; y < max_Y; y++) {
    for (x = 0; x < max_X; x++) {
        Array[y][x] = '.';
    }
 }
 displayArray;
 getchar;
 return(0);
}

我正在尝试使用函数打印出仅包含点字符的 char 数组。当我运行它时,只有空白的 cmd 和返回值 0。我不断收到关于对这两行没有影响的语句的警告:

 displayArray;
 getchar;

有人可以帮忙吗?或者给我一个类似的链接,在那里我可以找到我的问题的答案?我环顾四周,但找不到任何可以与我相比并且至少能理解一点的东西。

【问题讨论】:

  • 尝试displayArray() 调用函数。否则就是函数指针。
  • 请注意,您的数组中只会得到零。
  • 非常感谢!一直以来,我都认为,当括号中的内容为空或什么都没有时,他们就不需要它们。非常感谢!
  • Ada 语言在没有参数的情况下不需要它们,但 C/C++ 大多数其他语言都需要。不客气
  • @Jean-FrançoisFabre:Pascal 也没有。

标签: c arrays function warnings getchar


【解决方案1】:

使用displayArray(); 你不应该像这样调用函数displayArray;你可以在向函数指针提供函数地址的同时使用它。

【讨论】:

    【解决方案2】:

    即使您使用的函数不带参数,您也需要使用括号。所以,

    displayArray;
    getchar;
    

    应该是:

    displayArray();
    getchar();
    

    另外,return 不是函数。这是一个关键字,所以你可以这样做:

    return 0;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      相关资源
      最近更新 更多