❶ c語言輸出不確定值為什麼
你把a[j]=j[i]+1;改成a[j]=a[i]+1;
把printf("%d\n",a[2]);改成printf("%d\n",a[1]);就行了
越界了。你定義的int a[2];它的下標是從0開始的,即只有a[0],a[1],沒有a[2],你最後的輸出出錯了
❷ c語言中的空函數返回一個不確定的值的意思是返回的數據的數據類型不確定還是返回的數據沒有確定的值
返回的數據是個不確定的值,原因是:
1、你定義函數fun()前面加void或者不加時,默認是無返回值,或者也說返回了一個垃圾數據
2、而這個垃圾數據通常都是固定的一串整形的數據,因為這是編譯器編譯時釋放函數沒有返回值,所以系統隨機返回的一個垃圾值,而往往你輸出驗證時就是差不多大小一個整形數據。
3、也有人理解無返回值,這只是一種理解和解釋編譯器規則的想法。
如果滿意,請採納!
❸ C語言選擇題,求大神幫忙解答,為什麼輸出結果不確定請給出具體解析。
fun(2,3,c);中的c是函數fun中的局部變數,與int c;中的c不是同一個變數,當fun函數結束後,fun(2,3,c);中的c將會被編譯器銷毀,後面的printf語句其實是輸出的int c;中的c的值,而語句int c;是聲明了int型變數,但是沒有給它賦值,所以它的值是不確定的(垃圾值)