C 語言中的字元陣列,完全不可讀

發布 科技 2024-05-23
9個回答
  1. 匿名使用者2024-02-11

    該程式是模組化的應用,前兩個子程式getline函式,copy函式作為調製函式,其功能是將一行讀成s並返回其長度並從to複製到,主要函式通過呼叫這兩個函式來達到目的。 了解調製函式的作用後,首先分析主要的音調功能,而((len = getline(line,maxline)) 0)是將輸入線讀入行中,並分配返回給len的長度,當有輸入為len>0時,則判斷長度是否為最大值,如果滿足則標記行, 並將行複製到 longest,依此類推,直到不再輸入長度最大的輸出行。

  2. 匿名使用者2024-02-10

    getline 函式讀取字串 獲取其長度 copy 函式 將新輸入的字串的長度與之前儲存的最長字串進行比較 保留最長的字串,最後輸出此字串。

  3. 匿名使用者2024-02-09

    注釋夠多了,還有什麼看不懂的? 糾結。。。

  4. 匿名使用者2024-02-08

    乙個字串常量,在記憶體中為其分配儲存空間。

    int a="string“;A 是整數陣列的位址,即整數陣列 a 中第乙個元素的位址,指向的儲存空間為 4 個位元組。

    字串的位址表示字串中第乙個字元的位址,指向的儲存空間為 1 位元組。

    因此,int a="string“是錯誤的。

    至於說,int c[8]; scanf("%s",c);為什麼是正確的,分析如下:

    您可以將字元儲存在整數儲存單元中,但可以使用該空間的較低位元組。 當然,在這種情況下,也可以從鍵盤輸入字串並將其儲存為 int 陣列,情況也是如此。

  5. 匿名使用者2024-02-07

    char d = "string"是的,int a 不能用字串初始化。 僅使用大括號:

    int a = ;

    int c[8];

    scanf("%s", c);這只是語法,但執行時結果可能不是您想要的。

    因為 scanf %s 是 c 指向的記憶體,所以每位元組儲存乙個字元。 例如,輸入"hellow"

    我們期望的是 c[0] 存在'h', c[1] 存在'e',但實際上'hell'4 位元組的 C[0]。

  6. 匿名使用者2024-02-06

    正確的選項是 b;

    a 和 d 之間的誤差是因為二維陣列定義的一維長度不能省略,即它必須是 a[n],其中 n 可以是任何正整數。

    c 是錯誤的,因為當用字元初始化陣列時,它應該以大括號為字首{}; 即 a[2][3]=; 如果使用字串初始化陣列,則可以將其保持未包裝狀態,例如 a[2][3]="ab";

    至於為什麼b是對的?

    b 專案B的名稱定義符合變數命名要求(以字母和下劃線開頭,由字母、數字和下劃線的任意組合組成);

    項 b 的陣列定義符合 C 語言要求,即其一維長度不能省略。

    專案b的陣列初始化滿足C語言的要求,陣列用字元和大括號初始化。 而且,由於省略了二維長度,因此在初始化時可以任意更改陣列的總長度。 也就是說,系統將至少為陣列分配 6 個元素,即 a[2][3]。

  7. 匿名使用者2024-02-05

    char a="12345"系統根據字串的實際長度設定 a 的長度,因此長度為 6。

    和 char a[10]="12345“在開始時將陣列的長度設定為10,然後初始化陣列中的資料,不會改變陣列本身的長度。

    簡而言之,陣列的長度在宣告時指定,指定的長度在 sizeof 處獲得。 如果在宣告期間未指定長度,則陣列的實際長度將根據初始化資料列表的長度確定。

  8. 匿名使用者2024-02-04

    在閱讀了您的問題和後續問題後,我將解決您的疑惑:

    sizeof 計算字元陣列的長度,這是乙個基礎,即看字元陣列定義時寫了多少,寫 n,計算算作 n(其實沒有計算,就拿吧; 整數和其他多位元組元素陣列)。你可能不相信,認為 char a="12345"不是我寫的! 實際上,編譯器在編譯時已經計算了常量 after = ,並填寫了數字 ......陣列定義中未填寫的數字實際上是編譯器語法而不是 C C++ 語法,編譯陣列的長度是恆定的!

  9. 匿名使用者2024-02-03

    如果陣列變數的長度是隨機的,則定義為字串的長度,如果預定義陣列的大小,則為陣列的長度。

相關回答
7個回答2024-05-23

在整個 main 函式中,只有這乙個變數,無論是第乙個 for 還是第二個 for,都是相同的 i,第二個 for 將有 i=-1,在 i= -1 的情況下,和 printf("%d ",a[i]);陳述。 所以不要害怕! 當案例沒有秒數時: >>>More

6個回答2024-05-23

使用 ITOA 函式。

原型:extern char *itoa(int i); >>>More

6個回答2024-05-23

氣泡排序,分數成陣列,名稱成二維字串,字串的第一維對應陣列的下標,排序交換一次,交換可以通過緩衝字串t來實現,例如使用strcpy(類似於變數的賦值)。 >>>More

3個回答2024-05-23

a1.對於文字常量 4,編譯器認為它是 int 和 double,所以雖然 4 3 的值等於,但當它轉換為整數時,它是 1,對於該表示式,它的結果是 double,因此可以保留小數部分。 這個問題所涉及的知識是型別的隱式轉換。 >>>More

7個回答2024-05-23

在 C 語言中。 以 0 開頭的整數常量是指八進位。 027 是 2x8+7,所以答案是 c。