有不少小萌新剛剛接觸C語言,會遇到各種各樣的問題,
不知道大家在碼代碼時,有沒有遇到過那種錯誤漫天飛的情況。
然而有很多時候怎麼找都找不到自己的代碼錯在哪裡。
下面為大家整理了一些學習C語言的小萌新容易犯的錯哦。
大家快來看看吧!
1. 忽略了“=”與“==”的區別
有許多小夥伴在編寫代碼時忽略了“=”與“==”的區別
會寫出瞭如下的錯誤代碼
if(a=1)
在C語言中,“=”是賦值的意思,如:a=1就是把3的值賦給了a。如果使用“==”意為比較兩邊值是否相等,需要注意的是在判斷語句中我們常常使用到“==”。
類似的,“&”與“&&”也有不同,“&”作為取地址符,常用於賦值語句中,“&&”則是“與”的意思,常用於判斷語句中。
當然也要注意“\\”的用法,“\\”是一個轉義字符,如果想要輸出\\時,就需要輸入“\\\\”。使用時,在“\\”的後面加些其他的字符會摩擦出不一樣的火花。
2.敲錯字母
大家在敲代碼時注意!!!
固定的函數名一定不要敲錯,所以要記牢常用的函數名哦。
例:include,printf,scanf等。
打代碼時手不抖,編譯運行時啥事沒有。
3.多加分號
int a=0;
for(int i=1;i<=100;i++);
{
a++;
}
printf("%d",a);
我們在敲代碼時常常會遇到如上的情況,在for語句的括號後多加了一個分號,從而會導致for語句提前結束,最終輸出的結果會是1,而不是想要的100。
所以此處應該引起注意:
在不需要分號的地方不要多加
在需要加時也千萬不要遺漏哦
4.程序運行時進行編譯
不知道大家有沒有遇到過下面這種情況明明代碼並沒有錯誤卻無法成功編譯,並且出現了這樣的錯誤提示
那麼很可能是因為在有程序運行時進行了編譯,這時候只需將運行的程序關閉就可以繼續編譯了
5.將數組個數誤認為最大下標值
int a[3]={1,2,3};
for(int i=1;i<=3;i++)
{
printf("%d ",a[i]);
}
如果你想要這樣輸出數組所有元素的值,此時只會得出錯誤的結果。這是因為定義時a[3]表示a數組有3個元素,但下標是從0開始的,所以存在a[0],a[1],a[2],但a[3]卻不存在哦
6.混淆字符與字符串
char c;
c="a";
字符常量是由一對單引號括起來的單個字符,字符串常量是由一對雙引號括起來的字符序列,所以字符串“a”實際上包括兩個字符'a'與 ' ',而把它賦給一個字符變量是行不通的
7.輸入輸出格式說明符使用不當
對於不同的數據類型輸入輸出時需要的輸出控制符也有不同哦,大家注意要相互對應。
下面為大家整理了一些格式控制符的說明,大家可以多瞭解一下。
格式控制符說明:
%d
按十進制整型數據的實際長度輸出
%ld
輸出長整型數據
%md
m 為指定的輸出字段的寬度。如果數據的位數小於 m,則左端補以空格,若大於 m,則按實際位數輸出
%u
輸出無符號整型(unsigned)。輸出無符號整型時也可以用 %d,這時是將無符號轉換成有符號數,然後輸出。但編程的時候最好不要這麼寫,因為這樣要進行一次轉換,使 CPU 多做一次無用功
%c
用來輸出一個字符
%f
用來輸出實數,包括單精度和雙精度,以小數形式輸出。不指定字段寬度,由系統自動指定,整數部分全部輸出,小數部分輸出 6 位,超過 6 位的四捨五入
%.mf
輸出實數時小數點後保留 m 位,注意 m 前面有個點
%o
以八進制整數形式輸出
%s
用來輸出字符串。用 %s 輸出字符串同前面直接輸出字符串是一樣的。但是此時要先定義字符數組或字符指針存儲或指向字符串
%x
以十六進制形式輸出整數,這個很重要
看完了這篇乾貨滿滿的文章,是否對你有些許幫助呢?如果大家在敲代碼時遇到了一些其他的錯誤,想要與大家分享,歡迎留言哦!
加C/C++學習交.流群,免費獲取C語言、C++學習資料,學習路線指導和梳理,更有進階乾貨的直播免費學習權限 ,都是大牛帶飛 讓你少走很多的彎路的 群...號是 546912356
閱讀更多 C語言編程開發 的文章