c++ - 指针算术符号

标签 c++ pointers iostream

我目前正在尝试弄清楚为什么我的程序会输出奇怪的字符。我希望它输出我为数组选择的字符,我已经在代码中显示了这些字符。不过,我不想使用括号表示法。我只使用指针算术符号,这让我感到困惑。

有人知道怎么解决吗?非常感谢,感谢您的帮助

#include <iostream>
using namespace std;


int main(){


char *arr = new char[10];
*arr = 'A', 'K', 'U', 'E', 'B', 'Z', 'D', 'O', 'M', 'Q';

// Show arr;
for(int i = 0; i < 10; i++){
cout << *(arr +i) << endl;
}


delete[] arr;


}

最佳答案

对于 built-in comma operator , *arr = 'A', 'K', 'U', 'E', 'B', 'Z', 'D', 'O', 'M', 'Q'; 将被解释为 (*arr = 'A'), ('K'), ('U'), ...;;所以它只将数组的第一个元素分配给 'A',其他元素根本没有初始化。

如果你想初始化所有的元素,你可以

char *arr = new char[10] {'A', 'K', 'U', 'E', 'B', 'Z', 'D', 'O', 'M', 'Q'};

LIVE

关于c++ - 指针算术符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386112/

相关文章:

.net - 是否可以从URL读取到System.IO.Stream对象?

c++ - Boost asio ip tcp iostream 错误检测

c++ - 如何在 C++ 中执行字节数组

c++ - 列出所有网络连接,然后管理一个

c++ - 在 C++ vector 中使用取消引用运算符

c - 如何在 C 中为我的数据结构分配内存

结构体的 C 指针 - 段错误

c++ - Xcode 5.0.1 中未报告段错误

对于指向不同事物的指针,以下代码是否成立

c++ io streams sync_with_stdio 没有区别