随笔 - 2, 文章 - 0, 评论 - 4, 引用 - 0
数据加载中……
@啸天猪
@cuigang

http://www.newsmth.net/bbscon.php?bid=335&id=179727
这篇文章把能够用&x取得地址的x都视为左值,于是"Hello world!"这样的字面值字符串和const常量都成为了左值。

可是:
const int i = 1;
i++;
"Hello world!"++;

在VC中编译时对后两行都会提示“++需要左值”。

如果相信这篇文章的话,那么这个结果是很令人费解的。
@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] 类型的呢?
@啸天猪
看起来比较抽象,能详细举例说明吗?