Ⅰ c語言,能不能這樣定義變數,為什麼
不能。C99中沒有對這樣的賦值表達式作定義,所以編譯器怎麼處理這個表達式都是可以的,比如先將b的值賦給a,再將10.0賦給b(雖然現有的編譯器都是先將10.0賦給b再將b賦給a)。
其次,這個表達式只定義了a是float型,b的類型不確定,若b在之前未定義,會報錯。
這種表達式還存在的一個問題就是a、b的命名含義不明確,雖然不違反標准,但是不符合編程規范
Ⅱ c語言中可不可以用變數定義數組的個數
數組不可以,但是有變通的方法
intn;
scanf("%d",&n);
int*s;
s=(int*)malloc(sizeof(int)*n);
//相當用定義了一個長度為n的int數組,調用和數組一樣,s[0],s[1].....
Ⅲ 在C語言中,數組定義時的下標不能用變數表示(即使它已經被賦值),如int [n];為什麼能把變數的定義過程詳...
在編譯的時候,數組需要一個指定的大小。n必須是常數,而你說的賦值在編譯的時候編譯器並不知道n到底是多少,運行時候才知道,所以編譯不通過。
若要動態開辟內存,可用malloc,用完之後用free釋放即可。
Ⅳ C語言變數定義哪些正確哪些不正確為什麼請改正
(1)游斗凳char c1,int a2;改正後char c1;int a2;
(2)INT a,b;FLOAT x,y;改正後int a,b;float x,y;
(3)a,b:char;改正後char a,b;
(4)char if;格式錯誤if不可以當變數
(5)int a,b改神旅正後int a,b;
(6)Int a:b:c;改正後銷慎int a,b,c;
(7)int a,x;float x,y;正確
Ⅳ c語言中可不可以用變數定義數組的個數;
c語言中不可以用變數定義數組的個數。
可以使用mallo函數
mallo函數返回的實際是一個無類型指針,必須在其前面加上指針類型強制轉換才可以使用;
指針自身=(指針類型*)malloc(sizeof(指針類型)*數據數量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
(5)c語言不能用變數定義擴展閱讀
mallo函數使用注意事項
調用malloc函數時,它沿連接表尋找一個大到足以滿足用戶請求所需要的內存塊。然後,將該內存塊一分為二(一塊的大小與用戶請求的大小相等,另一塊的大小就是剩下的位元組)。接下來,將分配給用戶的那塊內存傳給用戶,並將剩下的那塊(如果有的話)返回到連接表上。
調用free函數時,它將用戶釋放的內存塊連接到空閑鏈上。到最後,空閑鏈會被切成很多的小內存片段,如果這時用戶申請一個大的內存片段,那麼空閑鏈上可能沒有可以滿足用戶要求的片段了。