Dyl*_*ere 1 c++ arrays compiler-warnings
我正在制作一个C++程序,我有一个不断出现的警告(我正在使用g ++):
warning: pointer to a function used in arithmetic [Wpointer-arith]
Run Code Online (Sandbox Code Playgroud)
我想知道:这条警告信息到底意味着什么?什么是我的编译器试图告诉我问题(一般而言)所以我可以更好地理解我做错了什么?
谷歌搜索为人们的代码中的特定问题提供了具体的解决方案,但从未告诉我这条警告信息的确切含义.
我正在学习数组,我正在尝试制作一个打印"Hello,world!"的程序.一次一个字符,每个字符单独存储在一个数组中,并在for循环中泵送到cout.
这是代码:
#include <iostream>
using namespace std;
int ARRAY_ELEMENTS = 14;
void greeting()
{
char greeting[ARRAY_ELEMENTS];
greeting[0] = 'H';
greeting[1] = 'e';
greeting[2] = 'l';
greeting[3] = 'l';
greeting[4] = 'o';
greeting[5] = ',';
greeting[6] = ' ';
greeting[7] = 'w';
greeting[8] = 'o';
greeting[9] = 'r';
greeting[10] = 'l';
greeting[11] = 'd';
greeting[12] = '!';
greeting[13] = '\0';
}
int main(int argc, char* argv[])
{
greeting();
for (ARRAY_ELEMENTS = 0;
ARRAY_ELEMENTS <= 13;
ARRAY_ELEMENTS++)
{
cout << greeting[ARRAY_ELEMENTS] << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
感谢您的时间.
在这一行:
cout << greeting[ARRAY_ELEMENTS] << endl;
Run Code Online (Sandbox Code Playgroud)
你指的是功能命名greeting,你处理就好像它是一个数组.
greeting是一个函数,但是您尝试将其打印为char型数组。函数greeting()包含相同名称的char数组对代码的清晰度没有帮助-这可能是您感到困惑的地方。如果给事物赋予不同的名称,那么出问题的地方就会更加明显。
您需要让greeting()函数返回某些内容,而不是仅填充本地数组,否则无法从函数外部访问该数组(无论如何,函数返回后将立即丢弃该数组)。
| 归档时间: |
|
| 查看次数: |
8991 次 |
| 最近记录: |