您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關C語言入門基礎的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
先上思維導圖。
如圖所示,現在還是初識C語言的第一部分,本次只介紹了C語言本身特點,數據類型,常量變量,字符串轉義字符注釋,選擇循環語句,函數,數組。
接下來請和我一起粗略地探討其中內涵所在。
這是C語言的定義:
C語言是一門通用計算機編程語言,廣泛應用于底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平臺。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。 [1] 目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
但總結其特點就是
1.底層開發,
2.國際標準 ANSI C,
3.面向過程
#include <stdio.h> //stdio-標準輸入輸出 standard input & output headfile //int -整型-整數的類型 //主函數 //main函數是程序的入口 //唯一性有且僅有一個 int main() { //庫函數-打印函數-輸出函數 printf("hello world!\n"); printf("hello world!\n"); printf("hello world!\n"); return 0; } //這種寫法明確告訴你,main函數不需要傳參 int main(void) { } //這種寫法有用,但不是重點 int mian(int argc, char* argv[]) { }
C語言主要有六種數據類型,分別為字符型char,短整型short,整形int,長整型long,單精度浮點型float以及雙精度浮點型double。
這六種分別有自己的字符長度即其所建變量所占的空間,char最小只要1個字節,short占2個,int占4個,long一般是4個,也有可能是8個,反正只要滿足long的字節長度大于等于int就可以了。兩個浮點型的最為特殊,分別是4和8,顯然雙精度的精度更高。
int main() { //如何計算一個類型創建的變量所占空間的大小 //sizeof(); printf("%d\n", sizeof(char));//1個字節 printf("%d\n", sizeof(short));//2個字節 printf("%d\n", sizeof(int));//4個字節 printf("%d\n", sizeof(long));//4個字節 printf("%d\n", sizeof(long long));//8個字節 printf("%d\n", sizeof(float));//4個字節 printf("%d\n", sizeof(double));//8個字節 return 0; }
顯而易見的是,分為兩類變量和常量講述。變量又分兩類,一是局部變量,二是全局變量。
顧名思義,局部變量是定義在一對大括號內的,顯然我們平時在main函數里創建的都是局部變量,全局變量則為定義在大括號外面的變量。當二者同名時,局部變量優先,當然,這種代碼誰寫誰SB。
在程序中使用scanf函數,若程序為scanf("%d%d");%d%d之間不管有沒有空格,輸入變量時都要用空格隔開,若二者之間有逗號則逗號隔開。
對這二者討論他們的作用域和生命周期的話,全局變量的作用域為整個工程文件,若想在其他.c文件中使用則需要extern聲明一下,生命周期呢,則是整個工程的生命周期,也就是main函數的生命周期。局部變量的作用域為其定義的大括號{ }內,進作用域生命開始,出則結束。
//驗證局部變量的作用域 int main() { int b = 100;//主函數任意位置 { int a = 10;//局部變量作用域:局部所在范圍 printf("a=%d\n", a); printf("b=%d\n", b); } //printf("a=%d\n", a); printf("b=%d\n", b); return 0; } //驗證全局變量的作用域為整個工程 int a = 200; void test() { printf("test:%d\n", a); } int main() { test(); printf("main:%d\n", a);//全局變量可以任意使用 return 0; } //全局變量在其他源文件的使用 //轉到test1.c文件查看 int g_val = 110; //驗證局部變量的生命周期為進作用域到出作用域 int main() { { int a = 100; printf("%d\n", a); } printf("%d\n", a);//出作用域即生命周期結束 return 0; } //全局變量的生命周期為整個工程即main函數生命周期 int main() { printf("%d\n", g_val); return 0; }
常量呢,大致分為四種,1字面常量,2const修飾的常變量,3#define定義的標識符常量,4枚舉常量。
第一種,字面常量就是隨便寫出來的一個數,如3.14就是一個字面常量。
第二種,const修飾的常變量,即在創建變量時加上const修飾,如const int a=0;這樣變量a就具有了常屬性,不可被修改。但值得注意的是,常變量一詞,它仍然是個變量,不可用于定義數組。
//const修飾的變量 int main() { //局部變量 int a = 200; //不可被改變的屬性,常屬性 const int a = 110; a = 100; printf("%d\n", a); //const修飾的變量不可定義數組 //(常變量) int n = 110; int arr[n] = { 0 };//數組 return 0; }
第三種,#define定義的常量,寫法如 #define N 10,這是真真正正的常量,可以用來定義數組。同樣也是不可修改的(常量當然不可被修改)。
#define PAI 314 int main() { int a = PAI; printf("a=%d\n", a); //MAX = 300;//#define定義的變量不可被修改 //可用于定義數組 int arr[PAI] = { 0 }; return 0; }
第四種,枚舉常量,具體使用方法像enum sex {MALE,FEMALE,SECRET};這樣就得到了枚舉常量,各自都是有初值的,分別為0,1,2依次類推,當然也可以自己賦值。
//枚舉常量 SEX性別舉例 //可以一一列舉的值,性別,三原色 enum Sex { //枚舉的可能取值 MALE=3,//賦初值 FEMALE=8, SECRET//向后延一個為9 }; int main() { //FEMALE = 99;//ERR 枚舉變量值不可修改 enum Sex a=MALE; enum Sex s = FEMALE; printf("%d\n", MALE); printf("%d\n", FEMALE); printf("%d\n", SECRET); return 0; }
被單引號引起來的,如'w','r'是字符,被雙引號引起來的"yyx","abcdef"是字符串。字符串一般以'\0'結尾隱含在字符串的末尾。既然'\0'為字符串結束標志,在計算字符串長度時當然不算作字符串內容。
//字符,字符串 int main() { //'a', ' ' , 'X' - 字符 //"abc" "123" - 字符串 //"abcdef"; //字符串字面值 //① char ch2[] = "abcdef";//初始化字符數組 //a ,b ,c ,d ,e ,f ,\0 //%s - 打印字符串 //strlen - 打印字符串長度,(遇\0則停止,本身不算)\0是字符串結束標志 printf("%s\n", ch2); //abcdef printf("%d\n", strlen(ch2));//6 //② char ch3[] = { 'a','b','c','d','e','f' }; //a ,b ,c ,e ,f printf("%s\n", ch3); //abcdef燙燙燙燙燙abcdef printf("%d\n", strlen(ch3));//22,找不到\0 //③ char ch4[] = { 'a','b','c','d','e','f','\0' }; //a ,b ,c ,d ,e ,f ,\0 printf("%s\n", ch4); //abcdef printf("%d\n", strlen(ch4));//6 return 0; }
有防止單引號,雙引號,反斜杠被轉移的' \' ' , ' \" ',' \\ ' 。警告,蜂鳴的' \a ' ,退格符' \b ',進紙符' \f ',換行符' \n ',回車符' \r ',水平制表符' \t ',垂直制表位' \v ',八進制數字' \ddd ',十六進制數字' \xdd ' 。
#include <stdio.h> int main() { printf("c:\code\test.c\n");//c:code est.c printf("c:\\code\test.c\n");//c:\code est.c //單個\是轉義序列符,但這里又沒有\c的轉義字符,所以系統自動忽略該\ //想要出現該\,則必須要搭配兩個\\,防止其被轉義 return 0; } // \? //三字母詞 // ??) --> ] ??( --> [ //\' \" int main() { printf("%c\n", 'a'); printf("%c\n", 'b'); printf("%c\n",'\'');//在'前面加上\,以單純的將其視為字符' printf("%s\n", "\"");// \" return 0; } //\a \b \f \v \t \n \r //\ddd八進制數字 \xdd十六進制數字 int main() { printf("%c\n", '\165'); //打印八進制數字065轉化為十進制數字53所代表的字符(ASCII碼) printf("%d\n", '\165'); //打印八進制數字065轉化為十進制數字53 printf("%c\n", '\x15'); printf("%d\n", '\x15');//21 return 0; }
C++的風格 //xxxxx ,這種只能注釋一行。C語言的風格 /*xxxxx*/ ,不可嵌套注釋。
選擇語句,實現分支。具體情況為 if ( 條件 ) { 語句 } else ( 條件 ) { 語句 };循環語句,有while循環,do...while循環和for循環。
int main() { int i = 0; printf("加入比特\n"); printf("要好好敲代碼嗎(1/0)?\n"); scanf("%d", &i); if (i == 1) { printf("好offer\n"); } else { printf("藥丸\n"); } return 0; } int main() { int line = 0; printf("加入比特\n"); while (line<20000) { printf("敲%d了代碼\n",line); line++; } printf("牛逼壞了拿到了好offer\n"); return 0; }
函數主要傳參和返回值的類型要對應
int ADD(int num1, int num2) { scanf("%d %d", &num1, &num2); int sum = num1 + num2; return sum; } int main() { int num1 = 0; int num2 = 0; 輸入 //scanf("%d %d", &num1, &num2); 相加 //int sum = num1+num2; 輸出 //printf("sum=%d\n", sum); //int output = ADD(num1,num2); //printf("%d\n", output); printf("%d\n", ADD(num1, num2)); return 0; }
定義是一組相同類型的元素組成的集合,數組的使用是根據下標來的,從0開始數。
int main() { //數組 - 相同元素的集合 int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int i = 0; for (i = 0; i < 10; i++) { printf("%3d", arr[i]); } printf("\n"); for (i = 9; i >= 1; i--) { printf("%3d", arr[i]); } return 0; }
感謝各位的閱讀!關于“C語言入門基礎的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。