在main函式外給陣列賦值,C語言在main函式外定義陣列麼?不也是初始化麼

2022-07-29 01:35:03 字數 3649 閱讀 8842

1樓:

因為一般情況下,main()函式是程式執行的入口,沒進門就賦值當然沒意義了,根本執行不到。

c語言在main函式外定義陣列麼?不也是初始化麼

2樓:風雷九州

可以的,這個樣子a就是全域性變數了。

所有的函式都可以訪問。

3樓:匿名使用者

在main外,定義陣列時(定義任何變數都是),可以初始化賦值!!

但不可以有單獨的賦值操作語句。

如:int i=0;

int main()

這是可以的!

但int i;

i=0; //這樣就是非法的!!

int main()

4樓:熊貓級教父

行啊 只是這樣就把安a[5]定義為全域性變數了

//為什麼陣列可以在主函式外面定義?求求解? 5

5樓:

陣列定義在主函式外面,就是全域性變數

全域性變數也稱為外部變數,它是在函式外部定義的變數。 它不屬於哪乙個函式,它屬於乙個源程式檔案。其作用域是整個源程式。

在函式中使用全域性變數,一般應作全域性變數說明。 只有在函式內經過說明的全域性變數才能使用。全域性變數的說明符為extern。

但在乙個函式之前定義的全域性變數,在該函式內使用可不再加以說明。

6樓:塔姆講**

你可以把整個c都理解為是函式集合,

main,是整個函式中最外層的函式,

定義在函式內部的陣列,與函式是包含關係,只能在該函式裡使用,定義在函式外部的陣列,主函式是並列關係,與定義的陣列並列的函式都可以使用,

7樓:匿名使用者

舉個例子你就明白的了

int a;

void f();

int main()

void f()

8樓:騖分之一

因為函式外面定義的是全域性變數,可以被從定義處開始的下面各語句使用

9樓:諾堅

陣列定義在主函式外面,屬於全域性變數。

全域性變數就是每個函式都可以使用它。

如果定義在主函式或是其他某個函式裡,其他函式要使用的時候就必須傳參。而直接定義在外部,就不必傳參了。

這種定義的規則可以避免一些不必要的衝突。比如幾個人做乙個程式,每人負責一部分,後來合併的時候因為這些變數都定義在函式裡,就不會互相干擾。

把一些變數定義在陣列外還可以使函式看起來更清晰直觀。

10樓:

主函式呼叫其它函式,其它函式內部可以定義陣列,很正常呀!

loadme() ; //不是全域性變數!!!!

}main()

11樓:吳詩云

也許不是定義是賦值吧

12樓:匿名使用者

沒為什麼啊,全域性變數而已……

j**a中陣列的問題,同樣的定義和賦值語句,在main()方法中沒錯,在類中就報錯

13樓:ok獨一無二

類中是定義類的成員的,包括 屬性、方法、**塊{}、常量等等。 而num[0]=10086;

num[1]=10010;

num[2]=10000;

這三句**的賦值語句,不屬於上面的任何一種,它必須放在**塊裡面。

也就是和類中不能列印system.out.println()一樣,因為類一載入,這個語句就要列印,那它是由誰呼叫來列印的呢?

前面的int num=new int[10];並沒有錯。

你明白了嗎?

14樓:匿名使用者

你這是直接放到方法外面了吧,外面是定義變數的地方,除了剛開始的初始化賦值外,不能再次的對變數進行賦值。

你這裡對num陣列進行初始化為10長度的陣列後,只能在方法體中進行賦值,在方法體外就會出錯。

15樓:匿名使用者

你那是執行語句,怎麼可以直接放在類外呢,你可以把這些語句放在類方法中呀!

用c語言編寫,在主函式中定義乙個陣列a[50].定義乙個函式為陣列賦值,再定義一 函式輸出陣列中各

c語言中,主函式中已經賦值的陣列怎麼呼叫到子函式

16樓:我努力的方式

一般bai

是需要主函式

du提供儲存數

據的陣列,在參zhi數中給出陣列dao起始位址,專然後子函式在其中填充,屬比如要準會的整數是56 void fun(int *a,int b) void main()

請問下,在類中定義了私有成員陣列,如何在main函式中給其賦值並輸出,我這個**輸出部分好像有問題

17樓:姑遂向觸

int a[3]=;

a.b(a);

void b(int* values)

注意這兩段 ** 你傳的陣列只包含了3個元素而 for(int i=0;i<10;i++)data[i]=values[i]; 中value[3]到value[10]的時候是沒有分配記憶體的 所以出錯

18樓:

**肯定有問題,陣列越界了,你定義的a是三個元素的陣列,但是你呼叫的時候迴圈了10次,這是不可以的。

19樓:

#include

using namespace std;

class list

void displist()

};void main()

;a.b(a);

a.displist();

}//注意你的長度一致,你的少了using namespace std;

c語言用函式實現陣列賦值

20樓:嵇娥朱曉楓

你這樣屬於溢位,因為後面的幾個元素不在為陣列分配記憶體區域內,因此可以被其它資料任意佔用,值也就可能會改變。這種操作應該避免,對於陣列賦值,應該進行嚴格的邊界檢查

21樓:榮孟譙良弼

void

chg_array(int

array,

intsize,

intvalue)

chg_array(m_a,

31,9)

//將陣列

m_a的31個元素賦值為9.

一維陣列不需要二維指標。

22樓:徐志偉

程式語言:

void chg_array(int array, int size, int value)

chg_array(m_a, 31, 9) //將陣列 m_a 的31個元素賦值為9. 一維陣列不需要二維指標。

23樓:仁昀昀

如果你非要用指標的話,可以把陣列的形式改寫成指標的形式,就像一樓的

void chg_array(int array, int size, int value)

24樓:匿名使用者

直接賦值就行啊,有什麼問題

C語言如何定義一維陣列並給陣列賦值

例如 int a 10 列印該陣列 for int i 0 i 0 i printf a i 求陣列中的最大值 int max 0 for int i 0 i個陣列的平均值 int sub 0 for int i 0 i上是純手打 有段時間沒接觸c了 可能關於部分方法使用用點錯 只做借鑑 希望可以幫...

在c 程式中,main函式的位置

main函式的位置不固定。main函式只是說程式從這個函式開始,其他基本和一般函式一樣。只需要確保main函式裡出現的名字在之前有宣告 不需要定義 即可。比如以下形式可以 int foo 宣告並定義foo函式int main 以下形式也可以 int foo 宣告foo函式 int main int ...

C語言通過鍵盤給二維陣列賦值是不是只能個地進行

與二維陣列的型別有關。在c語言中,大多數二維陣列都只能乙個個進行賦值,但是對於字元型二維陣列,即char 陣列,每行都是乙個一維字元陣列,在c語言中是可以用作字串的。當其用作字串時,可以逐行輸入。如char a 10 100 int i for i 0 i 10 i scanf s a i 當二維字...