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] 类型的呢?