int a[5];
の場合は、defineのように置換という訳ではないでしょ。
a+1とか。int* const a そのものではないの?