首页 > 解决方案 > + 或 - 登录数组,C

问题描述

所以我刚开始学习数组,遇到了一个问题,要求我打印出字母等级 A、A+、A- 等的输出。

但是,我不确定如何将 + 或 - 号输入到数组中。这是我的数组行:

    char letter_grade[12] = {'F','D',"D+",'C',"C+","B-",'B',"B+","A-",'A',"A+",'\0'};

当我编译代码时出现了这个警告:警告:不兼容的指向整数转换的指针正在使用“char [3]”类型的表达式初始化“char”[-Wint-conversion]

任何人都可以帮助我改进我构造这部分的方式,以便不会出现警告吗?谢谢。

标签: carrays

解决方案


在 C 中执行此操作的正确方法是

const char *letter_grade[] = {"F", "D", "D+"/*, and so on*/};

而不是你所拥有的。"A-"是一种char[3]类型,而'F'是一种char类型。您不能在 C 中的数组中混合这样的类型。但是我正在做的是依赖指针衰减到 aconst char*这就是为什么各个字符串可以具有不同长度的原因。

请注意我是如何将元素计数排除在声明之外的;编译器会为你做这件事。


推荐阅读