實際遇到的話,說明程序邏輯有問題,或者是程序員因為特殊的目的故意這樣寫的。
C語言中的變量是按照順序依次分配內存空間的,不同的操作系統內存生長的方向是不同的
比如下面的程序在我的機器上(WIN7?MyC++)
#include?<stdio.h>
#include?<math.h>
int?main()
{
int?t[5]?=?{-1,-2,-3,-4,-5}; int?table[5]?=?{1,3,5,7,8}; int?temp[5]?=?{2,4,6,9,10}; printf("%d\n",table[8]);?//輸出-4 printf("%d\n",table[-2]);//輸出9 return?0;}
內存圖如下