C陣列負下標的資料型別問題,C 陣列下標的型別問題,這樣為什麼不對,應該在怎麼改?

2021-04-15 12:28:08 字數 1898 閱讀 6077

1樓:人才不

下標表示從當前位置開始尋找 正負號可以理解成尋找方向 正表示向下找第幾個 負表示向上找 都跟你的指標指向的資料型別相同

2樓:匿名使用者

c++語言不支援下標為負數的陣列,python語言則支援。

c++陣列下標的型別問題,這樣為什麼不對,應該在怎麼改? 10

3樓:符華陽

void fun(const int n)這裡的n是一個const 常量 你傳的 i 是一個變數 型別不匹配陣列必須指定長度

#include

using namespace std;

#define n 3

int main()

4樓:三秒區小王子

陣列在定義的時候必須明確的指出陣列的大小,你把變數賦給陣列肯定是錯的!

在c語言中,引用陣列元素時,其陣列下標的資料型別允許是

5樓:匿名使用者

b比如int a[20]

下表就可以是常量,

i=8 j=9

a[i+j]

也行,下標i+j就是整形表示式

6樓:匿名使用者

推薦回答b比如int a[20] 下表就可以是常量, i=8 j=9 a[i+j] 也行,下標i+j就是整形表示式

7樓:匿名使用者

a。陣列下標必須是整型的!而且c不會幫你去算,必須是個常量!

8樓:樹幹草莓

選a,整型常量表示式,整型表示式有可能是變數的,b不對

9樓:

想你想好想見你想你下班寫吧寫吧擺大巴

c語言陣列下標可以為負嗎

10樓:金色潛鳥

分清宣告還是語句。

宣告裡的中括號裡的數字不能為

負。例如 int a[-2]; 是錯的,陣列大小不能為負。

語句裡的中括號,c/c++ 看成運算子,不叫標點符號。

陣列元素和指標有恆等關係:

a[i] == *(a+i)

所以,i 為 負 的時候,a[i] == *(a- fabs(i))。只要 a-fabs(i) 這個地址裡 有 數值,就可以拿來 運算使用。

"很多書上說陣列下標不能為負" -- 因為是初級教材。

高階教材裡甚至提到, a[i] == i[a] 這也是正確的 !(有人在「知道」裡問過,我也回答過。)

當然,只能是變數形式,不能寫阿拉伯數字,事實上,也確確實實正確的。

11樓:

下標可以是負值,它的意思是向前定址,前提是你知道向前定址尋的記憶體地址的東西是你之前已經指定好的,就相當於你動態開闢一塊記憶體給你的陣列,這樣這個記憶體裡面的所有資料都是你需要的,向前定址也沒什麼問題。

12樓:匿名使用者

不可以,下標必須是整數

c語言中,定義陣列和引用陣列時,其陣列的下標的資料型別分別允許是什麼?

9、在c語言中,引用陣列元素時,其陣列下標的資料型別允許是

13樓:匿名使用者

a。陣列下標必須是整型的!而且c不會幫你去算,必須是個常量!

14樓:匿名使用者

選最後一個,任何型別的表示式。只要能夠轉換成int型別的,無論是什麼樣的資料或者表示式都可以,因為陣列下標實際上就是相對於基址的偏移,希望可以幫到你。

15樓:雯淺要快樂

在引用數值元素時下標可以是整型常量或整型表示式

關於C語言不同資料型別的數混合運算的問題

你的 s 1 n是取整運算吧,1 2的整數部分當然是0了。而且你輸出時浮點型資料,所以s結果是0.00000 不能,會自動轉化,將s 1 n,改為s 1.0 n c語言 不同資料型別間的混合運算 c語言裡 不同資料型別間的混合運算會強制轉換的 如6.0 5 結果必然向float型轉換 比如char ...

c語言中資料型別的轉換

include stdio.h main 輸出的資料型別不匹配 給你舉個例子吧 j i 實際j值和i一樣 j i,實際j值比i大一 你還沒明白 i 注意它是在i使用後自動加一printf d i 這是兩句命令,執行完i 後才輸出,i值自然 1 j 它是在使用前加一 printf d j 也是兩句命令...

c語言多種資料型別混合輸入,C語言多種資料型別混合輸入

用字串就輸出了!比如 int main void 這樣輸入的只要是可顯示字元就都能輸出了 c語言中,每一種輸入控制符可以用來輸入哪種資料型別?a,a 讀入一個浮點值 僅c99有效 c 讀入一個字元 d 讀入十進位制整數 i 讀入十進位制,八進位制,十六進位制整數 o 讀入八進位制整數 x,x 讀入十...