[英]cout printing garbage when string is concatenated with array value
這是我非常基本的 C++ 代碼:
#include <iostream>
char values[] = {'y'};
int main() {
std::cout << "x" + values[0];
}
我預期的 output 只是xy
,但我只是得到隨機文本/符號
也許你打算這樣做:
std::cout << "x" << values[0];
否則,您將采用"x"
(它衰減為指向 const 數組的第一個元素的指針,該數組在內存中保存字符 { 'x'
, '\0'
}),並添加'y'
(具有數字轉換為int
時的值 121 ) 指向該指針。
將 integer 添加到指針會改變它指向的內容。 您正在讀取 memory,它超出 memory 中的'x'
字符 121 個字節,因此您將讀取隨機字節,或導致訪問沖突。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.