re: 數組類型、函數類型到左值和右值的轉換 iwong 2008-04-12 14:30
@嘯天豬
@cuigang
http://www.newsmth.net/bbscon.php?bid=335&id=179727
這篇文章把能夠用&x取得地址的x都視為左值,于是"Hello world!"這樣的字面值字符串和const常量都成為了左值。
可是:
const int i = 1;
i++;
"Hello world!"++;
在VC中編譯時對后兩行都會提示“++需要左值”。
如果相信這篇文章的話,那么這個結果是很令人費解的。
re: 對數組名取地址是什么?[未登錄] iwong 2008-04-10 20:27
@Xshl5
關于“類型”。
我們知道對于以下函數原型:
void fn(int x, double y);
可以省略掉參數名,僅用參數類型來做函數聲明,即:
void fn(int, double);
而以下代碼是能通過編譯的:
void Print(int [2], int); //注意此處用int[2]作為參數類型!
void _tmain(void)
{
int array[2] = {1, 2};
Print(array, 2);
}
void Print(int iArray[2], int x)
{
//do something
}//end of code
是否可以說明編譯器是認可 int[2] 類型的呢?