指针算法符号
Pointers arithmetic notation
我当前正在尝试弄清为什么我的程序输出奇怪的字符。我希望它输出我为数组中选择的字符,该数组已在代码上显示。不过,我不想使用括号符号。我只使用指针算术符号,这使我感到困惑。
有人知道如何解决这个问题吗?非常感谢您,感谢您的任何帮助
#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;
}
用于内置逗号运算符,*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
您的指针符号很好。问题是您的数组未初始化。
*arr = 'A', 'K', 'U', 'E', 'B', 'Z', 'D', 'O', 'M', 'Q';
首先将'A'
分配给*arr
,然后评估并扔掉'K'
,然后评估并扔掉'U'
等。您的编译器不会为此发出警告?
元素1至9的数组永远不会给出值。
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 将无符号char*转换为std::istream*C++
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- vscode g++链路故障:体系结构x86_64的未定义符号
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 使用gcc从静态链接的文件中查找可选符号
- 用于删除符号并生成排列的算法
- 用于在2个带符号整数区间之间进行除法的C++算法
- 指针算法符号
- 算法的大O符号
- 字符串匹配算法的大O符号