cout 從右到左輸出

2022-05-22 06:00:08 字數 996 閱讀 4610

最近又重新開始學c++了,才逐漸認識到c++的強大,原來自己一直都是乙個小菜鳥。今天在學find這個泛型演算法的時候,又遇到了乙個有趣的問題,故寫下來了。

先貼上**吧

#include#include

#include

#include

#include

#include

using

namespace

std;

template

inline inputitera find(inputitera first, inputitera last,

const t&value)

return

first;

}int main(void);

int *ptr = ::find(&a[0], &a[10], 7

); cout

<< "

test array

"

<< *ptr << '

'<< *(ptr + 1)

list1(&a[0], &a[10

]); list

::iterator ptr1 = ::find(list1.begin(), list1.end(), 7

); cout

<< "

test list

"

<< *ptr1 << 『 『 << *(++ptr1)

}

輸出的結果是:

test array

7 11

test list

11 11

原本以為第二個輸出的和第乙個是一樣的7和11,但是實際結果卻不是這樣的。

這個問題也很簡單,就是cout的機制是從右至左輸出的,所以執行的先後順序就是:先執行++ptr1然後輸出*ptr1,最後在輸出*ptr1。

c 中 和 的優先順序 cout運算從右到左

運算子優先順序 優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算子 條件運算子 賦值運算子。基本的優先順序需要記住 指標最優,單目運算優於雙目運算。如正負號。先...

使cout輸出到檔案

方法1 最笨 fstream output 把cout全部替換成output。方法2 利用命名空間自定義乙個cout namespace calendar 函式內 using calendar cout 在當前作用域內的cout實現全部輸出到檔案 方法3 最好 改變cout的輸出物件,使其輸出到檔案...

cout《格式輸出的使用

控制符是在標頭檔案iomanip.h中定義的物件。使用前必須把iomanip.h包含進來 1.i o的書寫格式 i 0流是輸入或輸出的一系列位元組,當程式需要在螢幕上顯示輸出時,可以使用插入操 作符 向cout輸出流中插入字元。例如 cout this is a program.n 當程式需要執行鍵...