C 及C常見錯誤翻譯和總結

2021-09-26 14:44:14 字數 1147 閱讀 6791

warning:deprecated conversion from string constant to 『char *』

不贊成從字串常量到字元指標的轉換

將char 改為 const char解決(**嚴格化)

warning: implicit declaration of function 『……』

translation:……函式的宣告是隱式的。

所有的函式及變數都必須先宣告再使用

如果將函式放置在主函式前方這個警告將不會顯示,因為已經宣告過了。

error: assignment to expression with array type

陣列名不能被賦值

char s[8]

; s =

"beijing"

;

由於陣列初始化為靜態儲存型別,而字串常量也屬於靜態儲存型別,用雙引號括起來的內容被視為指向該字串儲存位置的指標。所以將"beijing"指標所指向的位址賦給s指標所指向的位址,是不正確的,因為陣列為const *型別,指向位址不能被修改。

所以說,c不允許將陣列作為乙個單元賦給另乙個陣列——字串變數正是靜態儲存型別的陣列。同時不允許{}列表式賦值(具有陣列概念)。

char s[8]

; s[0]

='b'

;putchar

(s[0])

;

char a[7]

,b[7];

scanf

("%s%s"

,a,b)

;puts

(a);

puts

(b);

updated on 11/3/2019

error:array bound is not an integer constant before ']' token
在elemtype前加上const修飾符。陣列的儲存是靜態的,因為乙個記憶體分配是不可能預留的,而預留也會不夠,陣列的意義是數的組合,它應只佔一塊確定的儲存單元,所以當在檔案作用域使用vla時,必須用const加以修飾。

C 常見錯誤總結

1,字串 hello 會被輸出幾次?int main 這個題目,若不注意,會以為輸出三個hello。但是實際上輸出四個。但是 print輸出字串如果不是一 n 為結尾的話,就不會馬上輸出,而是儲存在快取區中。fork函式在建立子程序的時候會複製快取區的資料。2,i 和 i 作為引數傳入函式的情況分析...

c語言007 常見錯誤總結

輸入double型別的資料的方式是 1 double num scanf lf num scanf s lf num,sizeof double unsigned型別和int型別的進行相加,這時候int unsigned int。總結 乙個負整型和乙個無符號整型進行相加一定是整數。關於指標 char...

c 中的常見錯誤總結

c 中的常見錯誤總結 1.變數名的錯誤 例如 int char 編譯失敗 變數名不能和函式名同名 int system 會導致後面不能使用system函式 2.變數沒有定義直接使用 例如 a 3 a v 要先定義 之後在使用 3.輸入與使用的順序不當 以下是錯誤 include include us...