網(wǎng)站設計一般包括什么免費的api接口網(wǎng)站
目錄
第一個C語言程序
main函數(shù)
寫法:
printf和庫函數(shù)
printf()函數(shù)
庫函數(shù)
關鍵字
字符和ASCII碼表
字符串和'\0'
轉義字符
?語句
注釋
注釋的兩種形式
第一個C語言程序
#include<stdio.h>//第一個c語言程序
int main()
{printf("Hello World!\n");return 0;
}
main函數(shù)
每一個C語言程序不管有多少行代碼,都是從main函數(shù)開始執(zhí)行,也就是說main函數(shù)是程序的入口
main函數(shù)也叫做主函數(shù),C語言程序不能沒有main函數(shù),有且只有一個main函數(shù)
即使程序有多個.c文件,也是只有一個main函數(shù)
寫法:
//1、
int main()
{return 0;
}//2、括號中的void表示main函數(shù)無參數(shù)
int main(void)
{return 0;
}//3、這種基本不會用到
//main函數(shù)其實是有參數(shù)的,不想使用的時候就可以不寫,需要的時候就寫上
int main(int agvc, char* argv[])
{return 0;
}
main前面的int表示main函數(shù)執(zhí)行結束的返回值類型,suoyi會在main函數(shù)的最后寫"return 0"
有很多初學者第一次在寫代碼時都會出現(xiàn)以下常見的錯誤:
1、main寫成mian
2、main后面的()漏寫了
3、代碼中不能使用中文符號
4、每一條語句的結束后面都要有一個分號
printf和庫函數(shù)
printf()函數(shù)
在我們寫的第一個C語言程序中會出現(xiàn)這行代碼
printf("Hello World!\n");
這行代碼中使用到了printf()函數(shù),實現(xiàn)了在屏幕上信息的打印
在這里printf()函數(shù)是一個庫函數(shù),它的功能就是在屏幕上打印信息,它的全名是:print formet(按照格式打印信息)
只要將要打印的字符串放在雙引號中并傳遞給printf函數(shù)就可以打印了
注:在使用庫函數(shù)的時候要在程序頭部寫出頭文件
這里要用到的是
#include<stdio.h>
庫函數(shù)
那應該有人會好奇什么是庫函數(shù)呢?
為了不再重復實現(xiàn)常?的代碼,讓程序員提升開發(fā)效率,C語?標準規(guī)定了?組函數(shù),這些函數(shù)再由不 同的編譯器?商根據(jù)標準進?實現(xiàn),提供給程序員使?。這些函數(shù)組成了?個函數(shù)庫,被稱為標準 庫,這些函數(shù)也被稱為庫函數(shù)。在這個基礎上?些編譯器?商可能會額外擴展提供部分函數(shù)(這些函 數(shù)其他編譯器不?定?持)。
?個系列的庫函數(shù)?般會聲明在同?個頭?件中,所以庫函數(shù)的使?,要包含對應的頭?件。
關鍵字
在C語言中有一批保留名字的符號,如:"int"、"return"等,這些符號被稱為關鍵字或保留字
1、關鍵字都有特殊的意義,是保留給C語?使?的
2、程序員??在創(chuàng)建標識符的時候是不能和關鍵字重復的
3、關鍵字也是不能??創(chuàng)建的。
常用的32個關鍵字:
1、auto、 break、 case、 char 、 const 、 continue、 default、 do、 double 、 else、 enum、 extern2、float 、 for、 goto、 if、 int 、 long 、 register、 return、 short 、 signed 、 sizeof 、static3、struct、 switch、 typedef、 union、 unsigned 、 void 、 volatile、 while
字符和ASCII碼表
在鍵盤上可以敲出各種字符,如:a,q,@,#等,這些符號都被稱為字符,C語?中字符是?單引號括起來的,如:'a','b','@'。
我們知道在計算機中所有的數(shù)據(jù)都是以?進制的形式存儲的,那這些字符在內存中分別以什么樣的?進制存儲的呢?如果我們每個???給這些字符中的每個字符編?個?進制序列,這個叫做編碼,為了?便?家相互通信,不造成混亂,后來美國國家標準學會(ANSI)出臺了?個標準 ASCII 編碼,C語?中的字符就遵循了 ASCII 編碼的?式。
我們不需要將這張表完全背下來,要使用到的時候查看就行,但有些數(shù)據(jù)是會經(jīng)常用到的可以好好掌握
1、字符A~Z的ASCII碼值從65~90
2、字符a~z的ASCII碼值從97~122
3、對應的??寫字符(a和A)的ASCII碼值的差值是32
4、數(shù)字字符0~9的ASCII碼值從48~57
5、換? \n 的ASCII值是:10
6、在這些字符中ASCII碼值從0~31 這32個字符是不可打印字符,?法打印在屏幕上觀察
打印部分字符(字符的打印要用到"%c"):
int main()
{for (int i = 32; i <= 127; ++i){printf("%c ", i);if (i % 16 == 15){printf("\n");}}return 0;
}
字符串和'\0'
在C語言中如何表示字符串呢?
使用雙括號括起來的一串字符就稱為字符串,如:"abcd"就是一個字符串
而字符就用單引號括起來,如'a','b'
字符串的打印格式就用"%s"
int main()
{printf("%s\n", "abcdef");return 0;
}
?以上面的代碼中字符串為例,"abcdef"中看起來就只有6個字符,但他其實還隱藏了一個”\0“的轉義字符,而''\0"是字符串結束的標志
那我們來如何證明"\0"是字符串的結束標志呢?
int main()
{char c1[] = "abcdef";char c2[] = { 'a','b','c','d','e','f' };printf("%s\n", c1);printf("%s\n", c2);return 0;
}
那為什么會出現(xiàn)這種情況呢?
根據(jù)這張調試圖就可以知道 ,c1的字符串后面有一個'\0',而c2卻沒有
由此可知:c2中沒有表明'\0'的位置,這就意味著打印完c2中的字符后,程序會繼續(xù)執(zhí)行,直到遇到一個隨機的'\0',才會結束
那如果我們想用c2的形式打印正確的字符就需要將'\0'也輸入進去
char c2[]={'a','b','c','d','e','f','\0'};
轉義字符
在字符中有一堆特殊的字符就叫做轉義字符,在前面我們所講到的'\n'、'\0'就是轉義字符
轉義字符:顧名思義就是轉變原來意思的字符
由上面的程序及運行結果可知,一個'n'在'\'的修飾后,意思就發(fā)生了變化,從一個不同的字符變?yōu)檗D定義為換行的意思
然而在C語言中許多轉義字符:
\? :在書寫連續(xù)多個問號時使?,防?他們被解析成三字?詞,在新的編譯器上沒法驗證
\' :?于表?字符常量'
\" :?于表??個字符串內部的雙引號
\\ :?于表??個反斜杠,防?它被解釋為?個轉義序列符
\a :警報,這會使得終端發(fā)出警報聲或出現(xiàn)閃爍,或者兩者同時發(fā)?
\b :退格鍵,光標回退?個字符,但不刪除字符
\n :換?符
\t :制表符,光標移到下?個?平制表位,通常是下?個4/8的倍數(shù)
\ddd :d d d表?1~3個?進制的數(shù)字
\xdd :d d表?2個?六進制數(shù)字
\t :制表符,光標移到下?個?平制表位,通常是下?個4/8的倍數(shù)
?
?\ddd :d d d表?1~3個?進制的數(shù)字,如:'\130'=1*8^2+3*8^1+0*8^0=88=X
根據(jù)這個轉義字符可知,'\0'其實就是它的一種,是null字符,表示無內容
在字符串printf()打印或用strlen()計算字符串長度時,遇到'\0'就停止
\xdd :d d表?2個?六進制數(shù)字,如:'\x30'=3*16^1+0*16^0=48=0
注:
轉義字符也是字符的一種,所以在計算字符串長度的是會算做一個字符
?語句
C語言的代碼是由一條一條語句組成,而C語言中語句可以分為以下五類:
1、空語句
2、表達式語句
3、函數(shù)調用語句
4、復用語句
5、控制語句
空語句:這種是最簡單,一個分號就是一條語句,就是空語句?
int main()
{;return 0;
}
空語句的使用場景:一般是出現(xiàn)在這個地方需要一條語句,而這個語句不需要做任何事情,就可以在這里寫一條空語句
表達式語句:就是在表達式后面加上分號
int main()
{int a=1,b=2;a=b+1;return 0;
}
函數(shù)調用語句:在函數(shù)調用的時候,也會在后面加上分號,那這就是函數(shù)調用語句
#include <stdio.h>int Add(int x, int y)
{return x+y;
}int main()
{printf("hehe\n");//函數(shù)調?語句int ret = Add(2, 3);//函數(shù)調?語句 return 0;
}
復合語句:就是前面講過的代碼塊,成對括號中的代碼就構成一個代碼塊,也被稱為復合函數(shù)
#include<stdio.h>
void print(int arr[], int sz) //函數(shù)的?括號中的代碼也構成復合語句
{int i = 0;for(i=0; i<sz; i++){printf("%d ", arr[i]);}
}
int main()
{int i = 0;int arr[10] = {0};for(i=0; i<10; i++) //for循環(huán)的循環(huán)體的?括號中的就是復合語句{arr[i] = 10-i;printf("%d\n", arr[i]);}return 0;
}
控制語句:該語句用于控制程序的執(zhí)行流程,以實現(xiàn)程序的各種結構方式(C語??持三種結構:順序結構、選 擇結構、循環(huán)結構),它們由特定的語句定義符組成,C語有九種控制語句。
可分成以下三類:
1. 條件判斷語句也叫分?語句:if語句、switch語句;
2. 循環(huán)執(zhí)?語句:do while語句、while語句、for語句;
3. 轉向語句:break語句、goto語句、continue語句、return語句。
這里就不多綴敘,后面的文章會講解到
注釋
注釋是對代碼的說明,編譯器會忽略注釋,也就是說,注釋對實際代碼沒有影響。
注釋的兩種形式
1、/**/
2、//
注:
在程序編譯時,注釋會被替換成一個空格,這就是/**/這種注釋方式可以在插在行內
兩種方式都不能放在雙引號中,放在雙引號中會變成字符串的一部分,解釋為普通符號,失去注釋作用?