考慮以下幾點:const是否適用於傳遞給函數的所有參數?
void abc(const int*, int*);
int x = 1;
int y = 2
abc(&x, &y);
不知道ABC的()的定義,反正是有了解的執行行3後x和y的值是什麼?
這就是我認爲是內部ABC()真實,
x是一個常量指針指向一個int,因此被指出不能改變的價值,但使得x點可以是地址改變。 這是正確的嗎?
另外,函數頭中的const是否僅適用於第一個參數?或者它適用於兩者?
考慮以下幾點:const是否適用於傳遞給函數的所有參數?
void abc(const int*, int*);
int x = 1;
int y = 2
abc(&x, &y);
不知道ABC的()的定義,反正是有了解的執行行3後x和y的值是什麼?
這就是我認爲是內部ABC()真實,
x是一個常量指針指向一個int,因此被指出不能改變的價值,但使得x點可以是地址改變。 這是正確的嗎?
另外,函數頭中的const是否僅適用於第一個參數?或者它適用於兩者?
void abc(const int* a, int *b)
{
*a = 1; // error - not allowed, *a is const
a = b; // allowed, a is non-const
*b = 1; // allowed, *b is non-const
b = a; // error - not allowed, can't assign non-const pointer to a const pointer
int c;
b = &c; // allowed
}
x是一個常數指針指向一個int,因此該X點到CAN ,其指向不能改變值 但該地址被改變。那是對的嗎?
您從右向左讀取類型。所以第一個參數是一個指向整數常量的指針,第二個參數是一個指向整數的指針。所以我會重寫你的語句爲: x是一個指向const int的指針,因此指向的值不能改變,因爲它是一個const。
另外,函數頭中的常量是否僅適用於第一個參數 ?或者它適用於兩者?
該const適用於第一個參數,而不適用於第二個參數。他們完全獨立於對方。
不知道abc()的定義,是否有知道 第3行執行後x和y的值是什麼?
當然。閱讀文檔。
你可以用'std :: is_same'來回答你題目的問題。 – chris
[相關問題](http://stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-int-const),如果不重複 – ajp15243
「const適用於傳遞給函數的所有參數?「 - 沒有。那將是一場災難。 – 2013-10-04 04:37:05