簡體   English   中英

當字符串與數組值連接時,cout 打印垃圾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM