1. 程式人生 > >邏輯或“||”與按位或“|”的區分

邏輯或“||”與按位或“|”的區分

	ProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_VM_WRITE,FALSE,ProcessID);
	if (ProcessHandle == NULL)
	{
		return FALSE;
	}

開啟程序控制代碼,這裡注意其中的許可權中間必須使用‘|’而不是‘||’,因為是要得到這三個許可權,而不是讓它們做運算!

I是運算或,輸出運算結果; ||是邏輯或,輸出true或者false:

int i = 1,j=2;
int k = i | j;
BOOL b = i||j;

結果,k的結果是3,b的結果是1也就是true.

2.

&&和||是短路運算子,&和|是非短路運算子;

&&和||運算子第一個表示式不成立的話,後面的表示式不運算,直接返回。而&和|對所有表示式都得判斷.

3.

&和|還有一個作用:對數值進行操作,以這種方式使用時,它們處理的是變數中儲存的一系列位,而不是變數值,因此他們稱為按位運算子。

//按照2的補位系統,(-x)定義為(~x+1)