[英]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"
, i
是32767
; 打印"\\n"
, i
恰好是0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.