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 當二維字...