|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
奇怪!linux下的數組下標難道不是從0開始的麼?!
[code]
#include <stdio.h>;
int
main (void)
{
int a[2] = { 2 , 5 };
printf ("%d %d", a[1] , a[0]);
return 0;
}
[/code]
[color=green]int a[2] = { 2 , 5 };[/color]
我定義成a[1]={2,5};
警告:
aa.c: In function `main':
aa.c:7: warning: excess elements in array initializer
aa.c:7: warning: (near initialization for `a')
並且運行結果錯誤:a[0]成為了不定值了; |
奇怪!linux下的數組下標難道不是從0開始的麼?!
更讓我困惑的是,以上這個小程序;剛開始我在用gcc編譯:
gcc -c aa.c -o aa
執行./aa,什麼結果也沒有;
此時,感到萬分失落,這麼簡單的我都搞不定;我仔細的翻書看了一遍數組和函數printf的用法,覺得沒錯啊!可就是沒有結果!我試著改成這樣:
[code]
#include <stdio.h>;
int
main (void)
{
// int a[2] = { 2 , 5 };
// printf ("%d %d", a[1] , a[0]);
printf ("nihao");
return 0;
}
[/code]
再次編譯,並執行,可還是什麼也沒顯示;不得已,我打開anjuta這個圖形化的工具,編譯並執行,結果出來了!
奇怪! |
奇怪!linux下的數組下標難道不是從0開始的麼?!
理解有誤, a[1] 只表示一個數組成員, a[2]才是兩個, |
奇怪!linux下的數組下標難道不是從0開始的麼?!
哦哦哦哦
明白了!
可我為什麼用gcc編譯後運行會沒有結果呢? |
奇怪!linux下的數組下標難道不是從0開始的麼?!
可我為什麼用gcc編譯後運行會沒有結果呢?
我覺得應該不會的。 |
奇怪!linux下的數組下標難道不是從0開始的麼?!
結果是有的.被你的下一行的字符蓋住了.
加上\n
就會看到了 |
奇怪!linux下的數組下標難道不是從0開始的麼?!
hehe!
真的讓shell提示符給蓋住了!
長學問啊!:P |
奇怪!linux下的數組下標難道不是從0開始的麼?!
出現錯誤,首先找錯,盡量少懷疑編譯器的毛病,畢竟是經過很多人折騰出來的。呵呵 |
| |