簡體   English   中英

打印換行符時 C++ 中的意外輸出

[英]Unexpected Output in C++ while printing newline character

任何人都知道為什么在打印出標記后打印換行符時會發生這種情況,然后輸出是意外的。 當我刪除它時,程序運行良好,除了換行符外,還給出了預期的結果。

#include <iostream>
using namespace std;
int sum(int[], int);
int max(int*, int);
int main()
{
    int marks[5] = { 1, 2, 3, 4, 5 };
    cout << marks << "\n";
    cout << sum(marks, 5) << "\n";
    cout << max(marks, 5) << "\n";
    return 0;
}
int sum(int arr[], int n)
{
    cout << arr << "\n";
    int total = 0;
    for (int i; i < n; i++) {
        total += arr[i];
    }
    return total;
}
int max(int* ptr, int n)
{
    cout << ptr << "\n";
    int max = 0;
    for (int i = 0; i < n; i++) {
        max = max > *(ptr + i) ? max : *(ptr + i);
    }
    return max;
}

打印換行符時輸出。

刪除換行打印語句時的輸出。

sum()函數的 for 循環中,變量i未初始化,這意味着其值不可預測。 通過我機器上的gdb ,當沒有打印"\\n"i32767 打印"\\n"i恰好0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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