【发布时间】:2011-09-19 21:46:39
【问题描述】:
谁能解释一下程序的strage输出我知道该值与存储在数组中的值无关,而是与指针有关,但是第二个值如何变为5:
int main()
{
int **h;
int a[2][2]={1,2,3,4};
h=(int **)a;
int i,j;
printf("%d",*h);
(*h)++;
printf("\n%d",*h);
getch();
return 0;
}
【问题讨论】:
-
不提供链接,请在此处发布代码示例。
-
@Ed S. 一般来说,我讨厌 pastebins,但老实说...... ideone 很棒。这比仅在问题中发布代码要好得多 - 您可以看到编译器警告和输出。可惜它没有像 imgur 那样集成到 SO 中。
-
int a[2][2]={1,2,3,4};是如何编译的? -
TBH,它不应该被标记为
c++... -
@AnkitSablok:但它仍然是 C 代码,所以 C++ 标记不应该存在。
标签: c