c - + 或 - 登录数组,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]
任何人都可以帮助我改进我构造这部分的方式,以便不会出现警告吗?谢谢。
解决方案
在 C 中执行此操作的正确方法是
const char *letter_grade[] = {"F", "D", "D+"/*, and so on*/};
而不是你所拥有的。"A-"
是一种char[3]
类型,而'F'
是一种char
类型。您不能在 C 中的数组中混合这样的类型。但是我正在做的是依赖指针衰减到 aconst char*
这就是为什么各个字符串可以具有不同长度的原因。
请注意我是如何将元素计数排除在声明之外的;编译器会为你做这件事。
推荐阅读
- php - 如何在 php 中获取 httponly cookie?
- python - django allauth - 如何查询 SocialApp?
- c# - 在 WPF 中异步打开窗口
- codesandbox - 为什么 Codesandbox 无法渲染代码并显示奇怪的错误
- javascript - JS 奇怪的表达式:+!!NaN * "" - - [,]
- reactjs - 有什么方法可以在 react-native 中将屏幕重新渲染到底部标签导航 v5
- python - 使用熊猫对数据框进行排序
- java - 'Controller' 中构造函数的参数 0 需要一个找不到的 'service' 类型的 bean。不工作:添加注释,组件扫描
- angular - Nginx 反向代理允许在 Tomcat 上运行的 Jasper 报告服务器的 CORS 失败的预检请求访问控制检查
- css - 如何在 React 中添加 CSS 退出动画?(没有任何第三方库/包)