本文目錄一覽:
作為C語言初學者,經常遇見哪些語法錯誤
這裡常見會見到一些同學經常犯這種錯誤,scanf(「…」, 參數1, 參數2, …);其中參數輸入是指針類型,所以示例中需要b需要取地址,為什麼char a[100]不用取地址呢?因為char a[100]可以看做指針,只需要把a的首地址寫入即可。
C語言常見語法錯誤
跟一些同學說了一下,他彷彿又有點明白了。然而他又說怎麼又是有錯誤的,我明明按照你的要求參數寫入時指針類型。那同學還特意地指出程序裏面說:我申請了一個結構體指d,填入的「d-b」參數不是指針嗎?聽到他這樣說,有問題當然要糾正啦!語重心長地對他說,大哥!你認真看一下,d-b應該是int類型,而不是指針類型吧?他聽了好像不怎麼明白,我就舉了一個例子,結構體好像是一個容器,容器裏面存放着類型變量,而通過結構體容器找裏面的內容是比如找的是結構體成員b,那b的類型是int型,具體怎麼找用d-b找到b變量,那d-b是什麼類型呢?當然是d結構體所指向與b的int類型。
C語言常見語法錯誤
這一句沒語法錯誤,卻是最多初學者這樣去寫的,他們就會說,為什麼我輸入一個數字後按回車怎麼沒反應的呢?咋一看程序才發現多了一個」\n」,具體原理是這樣的,當你程序是scanf(「%d」, i)輸入數字後回車是可以輸入的,但是變成scanf(「%d\n」, i);時候就需要回車兩次,因為\n需要格式化輸入。
C語言常見語法錯誤
頭文件寫錯也是很多人犯的,比如卻後綴『.h』,系統頭文件需要使用括住,而自定義頭文件使用」 」,在linux C裏面和」 」還是有區別的。
正確寫法是:
#include stdio.h
#include string.h
#include 「func.h」
C語言常見語法錯誤
這裡混淆了字符常量與字符串常量,字符常量是使用單引號括起來的單字符,字符串常量才是使用雙引號,正確寫法是char c = 『a』;或者char *c = 「a」;
C語言常見語法錯誤
這裡也是很多初學者犯的錯誤,忽略『=』和『==』的區別。在C語言中『=』是賦值運算符,『==』是關係運算符,顯然這裡做的是i是否等於0的判斷,這裡應該改成if(i == 0) i++;
C語言常見語法錯誤
這裡的問題也是初學者犯得非常多的錯誤,不加分號或多加分號。很多學生都會問,我看了幾次程序,確定沒什麼問題的啦!還是對着你的示例程序敲的,不可能錯的。認真地幫他看了一下,原來都是少加分號和多加分號了。int i = 0; 需要加分號,而if(i == 0)和for循環後面不需要加分號,因為如果加了分號,if語句就失去判斷的作用而for就會失去循環的作用。因為『;』代表的是結束。
C語言常見語法錯誤
還有一些格式上的錯誤、關鍵詞寫不完整、區分大小寫。正確應該是scanf(「%d%d%d」, a, b, c);
C語言常見語法錯誤
總結一下,學習嵌入式編程特別是在C語言上要學會如何找錯誤,一般有錯誤都是在編譯輸出終端裏面找,會提示那一行出錯或者錯的是什麼編譯器都會大概告訴你,學會找出問題所在再去解決它才是我們真正需要的。
C語言編程時遇見的鏈表的問題
肯定是鏈表斷了,好好檢查一下程序中所有對鏈表的操作,用筆在紙上模擬這些操作實際畫一畫圖就知道那些語句出錯了,這種很基礎的問題不自己解決的話些程序永遠都不會有進步的。
C語言遇見程序難題.拜託各位高手了
isspace:
原型:extern int isspace(int c);
用法:#include ctype.h
功能:判斷字符c是否為空白符
說明:當c為空白符時,返回非零值,否則返回零。
空白符指空格、水平製表、垂直製表、換頁、回車和換行符。
// isspace.c
#include syslib.h
#include ctype.h
main()
{
char s[]=”Test Line 1\tend\nTest Line 2\r”;
int i;
clrscr(); // clear screen
for(i=0;istrlen(s);i++)
{
if(isspace(s[i])) putchar(‘.’);
else putchar(s[i]);
}
getchar();
return 0;
}
toupper :
原型:extern int toupper(int c);
用法:#include ctype.h
功能:將字符c轉換為大寫英文字母
說明:如果c為小寫英文字母,則返回對應的大寫字母;否則返回原來的值。
舉例:
// toupper.c
#include syslib.h
#include ctype.h
main()
{
char *s=”Hello, World!”;
int i;
clrscr(); // clear screen
printf(“%s\n”,s);
for(i=0;istrlen(s);i++)
{
putchar(toupper(s[i]));
}
getchar();
return 0;
}
原創文章,作者:JYQX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/143242.html