半小時一篇文過完C語言基礎知識點

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我,若你是真心學習可以送你書籍,指導你學習,給予你目標方向的學習路線,無套路,博客為證。

本文定位讀者為小白讀者,將使用最快的方法過完C語言基礎知識,并且制作一個學生管理系統。由于是快速閱覽,本文不會描述過多的其它知識,大部分知識點只是描述了如何進行使用,如何深入還需要各位努力;不過學習過了一遍內容后,學習起來也會較為容易。

目錄

這篇文沒有添加的指針內容可以看這篇:淺論指針(一)

你去約個會,你零基礎的同學就學完C語言知識點過完了
《看聊天記錄都學不會C語言?太菜了吧(1)我在大佬群里問基礎問題沒人理?
《看聊天記錄都學不會C語言?太菜了吧(2)我說編程很容易你們不服?
《看聊天記錄都學不會C語言?太菜了吧(3)代碼都在談戀愛難道你不知道?
《看聊天記錄都學不會C語言?太菜了吧(4)原來我早就會編程了
《看聊天記錄都學不會C語言?太菜了吧(5)打了一把游戲我學會了一個編程知識?
《看聊天記錄都學不會C語言?太菜了吧(6)以前跟我說編程很難的給我站出來
《看聊天記錄都學不會C語言?太菜了吧(7)下一篇文章告訴你牛郎是誰
《看聊天記錄都學不會C語言?太菜了吧》(8)牛郎和織女竟有一個孩子?


作者簡介

作者名:1_bit
簡介:CSDN博客專家,2020年博客之星TOP5,藍橋簽約作者
博客地址:https://i1bit.blog.csdn.net


環境:

  • 系統:windows7
  • IDE:Devc
  • 面向讀者:小白

一、HelloWorld

HelloWorld 是經典的編程入門程序,指在編寫代碼生成程序,運行該程序將會在程序中顯示 HelloWorld。以下是一個 HelloWorld 的C語言代碼:

#include<stdio.h>
int main(){printf("HelloWorld");
}

以上程序中 #include<stdio.h> 稱為頭文件,頭文件我們可以理解成“將工具箱拿過來”這一件事。代碼 #include<stdio.h> 中,#include<> 相當于一只手,stdio.h 為需要拿過來的工具箱名。那為什么要拿這個工具?是因為我們在這個代碼中將會用到這個工具箱中的工具。

int main(){} 為一個程序的入口,什么是程序的入口呢?其實就像醫院或者一些場所,總有一個大門規定從此進入,否者當客戶想要進入這個場所時將會找不到入口。而這個main就是我們這個代碼的入口,里面具體的內容就寫在main后面的花括號{}中。

花括號中的代碼是 printf("HelloWorld");,其中printf()叫做printf函數,其實函數這個術語我們可以理解成一個功能或者說工具,printf()是存放在stdio.h 中的工具,printf()可以用來顯示你要顯示的內容,在printf()圓括號中使用雙引號引起你想要顯示的內容即可。在這里需要顯示的是HelloWorld。注意,一般情況下,每一句代碼結束后需要使用分號進行結尾。

編譯運行程序將會出HelloWorld:

二、變量

變量在C語言中我們可以當做是一個存放內容的容器,例如可以存一個數字、一個字符、小數等。變量有不同的類型,包括整型、字符型、浮點數;浮點數我們可以簡單的理解成小數即可。

如果你想要創建一個整數類型的變量很簡單,整數在C語言中使用int進行描述,隨后我們在int后輸入一個字符串或者字符就可以完成一個變量的創建,但是要注意,需要使用分號結束:

#include<stdio.h>
int main(){int a;
}

以上代碼 int 是類型描述,a字符是這個變量的名字,此時就等于讓計算機創建了一個名字標識為a,能存儲整數類型的變量了。我們一般在創建一個變量時需要對變量初始化,初始化是指給這個變量一個值,讓我們能夠知道這個變量具體所存儲的內容,所以可以這樣寫:

#include<stdio.h>
int main(){int a=0;
}

以上代碼 int a=0; 使用等于號將0存入了a變量,等于號的作用則是將等于號右邊的值存入左邊的變量中。

變量可以使用printf()將其內容進行輸出顯示,代碼如下:

#include<stdio.h>
int main(){int a=0;printf("%d",a);
}

以上代碼 printf("%d",a); 將會把變量a的內容進行顯示,其中 %d 是一個占位符,占位符則表示在此處占據一個位置,之后將會替換成一個值;在這句代碼中,我們可以看見雙引號后使用逗號對變量a進行了分隔,當運行printf()這一句代碼時,將會輸出printf圓括號內雙引號后使用逗號分隔的第一個變量值。

在此我們需要注意,創建一個變量后,之后使用該變量不需要在此將類型符一起編寫。就例如你跟你朋友介紹小a,只需要第一次介紹完畢,之后就直接說名字就認識了。

程序運行結果如下:

三、常量

變量在程序運行時是可變的,而常量不行。當你創建一個常量時給予了它值,那么之后的值都不能進行改變。我們先看一下變量在程序運行時改變內容是否可以:

#include<stdio.h>
int main(){int a=0;printf("%d",a);a=10;printf(" %d",a);
}

以上代碼在顯示了第一次a的值后再次改變了a里面的內容為10,之后再次輸出顯示,將為等于10:

接下來看下常量。常量只需要在創建一個變量時使用 const 進行修飾即可:

#include<stdio.h>
int main(){const int a=0;printf("%d",a);a=10;printf(" %d",a);
}

此時我們編譯代碼將會出錯:

四、變量運算

變量之間是可以相互相加減的,例如正常的加減法、乘除法等。首先我們可以創建兩個變量:

int a=10;
int a1=20;

aa1相加并且顯示就可以寫成如下代碼:

#include<stdio.h>
int main(){int a=10;int a1=20;printf("%d",a+a1);
}

以上代碼printf("%d",a+a1);中,%d是個占位符,將會輸出aa1相加后的值。之前解釋過,%d將會顯示引號后逗號隔開的第一個值,在這里a+a1是一個值,將會先運算,然后進行相加,結果為:

我們也可以同時顯示aa1的值:

#include<stdio.h>
int main(){int a=10;int a1=20;printf("%d %d",a,a1);
}

以上代碼printf中,第一個%d 顯示引號后第一個逗號隔開的a值,第二個%d將會顯示逗號隔開的第二個值a1。結果為:

同時一行創建兩個變量以及乘法運算可以寫成:

#include<stdio.h>
int main(){int a=10,a1=20;printf("%d",a*a1);
}

五、輸入

在C語言中可以從鍵盤中輸入一個值并且賦值給一個變量。使用一個工具叫做scanf()函數,它也存放在stdio.h這個頭文件工具箱中。以下是scanf()的使用方法:

#include<stdio.h>
int main(){int a=10;printf("%d",a);scanf("%d",&a);printf("%d",a);
}

以上代碼首先創建了一個變量a等于10,隨后顯示a的值,之后使用了scanf("%d",&a);,在這個代碼中,%d表示接收即將要輸入的值,&a表示取到a的地址,并且把輸入的值存到變量a中。其實%d是一個只代表整數類型的占位符。最后再輸出a的值,結果如下:

六、邏輯

在C語言中,可以使用if語句對邏輯進行判斷,例如判斷用戶輸入的數是否大于10。示例代碼如下:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a>10){printf("%d",a);}
}

以上代碼使用了if語句對輸入的值進行判斷,在使用scanf后將值存入了變量a中,之后使用if語句在if語句后的圓括號中輸入條件,如果這個條件成立則運行后面花括號的代碼printf("%d",a);,如果條件不正確,那么則不會執行其它代碼。

輸入1,不顯示其他代碼,因為不大于10。

輸入11,條件成立,執行花括號內的代碼:

我們還可以在if語句后輸入其它代碼表示已經執行完if語句:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a>10){printf("%d",a);}printf("if 語句已經執行完畢");}

運行結果如下;

七、if else

if 語句還有一個else 分支,else分支用于在條件判斷錯誤后執行:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a>10){printf("條件成立,輸入值是 %d",a);}else{printf("條件錯誤,輸入值是 %d",a);} }

以上printf語句中有其他字符串以及占位符 %d,此時其它字符串照原樣輸出顯示,%d將會替換成變量a的值:

八、if else if

使用if else if語句可以為if語句判斷多個條件。

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a==1){printf("a是 %d",a);}else if(a==2){printf("a是 %d",a);} else if(a==3){printf("a是 %d",a);} else if(a==4){printf("a是 %d",a);} else{printf("條件都不對");}}

以上代碼使用了else if語句,在else if語句中可以增加多個判斷條件,判斷a的值為什么。在C語言中使用兩個等于號表示判斷左右兩邊的值是否相等。

九、邏輯運算

在C語言中,使用一個if語句也可以判斷多個條件,這時需要使用邏輯判斷符&&邏輯與、||邏輯或。例如你需要判斷小于10以內的偶數,那么就是兩個條件;其一需要小于10,其二需要能夠被2整除,而且這兩個條件是同時都要滿足的,既要小于10,也要能夠被2整除。例如現在有一個變量a存儲的是用戶輸入的數,這兩個條件就可以寫成 a<10a%2==0,這兩個條件中的%是取模運算,指的是取余數,余數為0則表示能夠判斷被2整除。

那么如何使用if語句同時判斷這兩個條件呢?其實只需要在if語句中使用&&將兩個條件連接即可:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a<10 && a%2==0){printf("條件成立");}else{printf("條件不對");}}

以上代碼中,if語句后的圓括號中輸入條件,在這里使用兩個&&將兩個條件進行了連接,表示兩個條件都是要同時滿足。a%2==0表示取余數后結果要為0,運行結果如下:

如果只需要滿足其中一個條件,只需要將&&換成||即可:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a<10 || a%2==0){printf("條件成立");}else{printf("條件不對");}}

輸入12,能夠被2整除,不必小于10,滿足條件其一即可:

十、循環

循環在C語言中可以對某一段代碼塊重復執行。示例代碼:

#include<stdio.h>
int main(){int a=0;while(a<10){printf("重復");a=a+1;} 
}

以上代碼首先創建了一個變量a,里面存儲的內容是0,隨后使用一個while進行循環。while是重復的關鍵字,你可以當作一個魔法咒語,直接使用while在后面的圓括號中是while循環的條件,在這里是a<10,意思是只要a這個變量的存儲值不大于10,那么就會一直循環;圓括號后的花括號中是需要重復的代碼,在這里是printf("重復");a=a+1,每次重復執行代碼都會顯示重復,并且a等于自身加1再給予自身,這樣a變量每重復一次就會增加1,第一次是1第二次為2,總有一次會超過10,超過10則會跳出循環不再執行。結果如下:


為了更直觀的查看結果,我們在printf語句中增加一個換行符\n,我們可以理解\n為一個特殊功能字符串,使用后每次顯示到該位置就會換到下一行:

#include<stdio.h>
int main(){int a=0;while(a<10){printf("重復\n");a=a+1;} 
}

結果為:

除了while循環我們還可以使用一個for循環,跟while循環一樣,都是循環作用:

#include<stdio.h>
int main(){int a=0;for(a=0;a<10;a++){printf("重復\n");} 
}

以上代碼forwhile一樣是一個關鍵字,你可以當作是一個魔法咒語,在圓括號中使用分號分隔了a=0a<10a++,其中a=0只會運行一次,表示將0存入a,隨后a<10為這個for循環的循環條件,如果條件不對將會跳出循環,每次for循環運行a<10都會運行一次,a++等于a=a+1,表示a變量自增1,此時每次循環a變量就會加上1,總有一次會跳出循環。結果為:

十一、結構體

結構體簡單的來說是一個數據的類型,跟int整型一樣,都是一種數據類型,是有多個或其它數量的數據類型組成的一種結構,其它數量的數據類型可以是整形等。代碼示例:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming; 
}

以上代碼使用一個 struct human 表示創建一個結構體,這個結構體叫做human,花括號內表示這個結構體擁有什么屬性;int age;用來存儲年齡,char sex;中的char表示字符類型的數據,跟int不一樣,char是值!@#¥……&*a之類的單個字符數據,char name 表示存儲一個姓名代號。struct human xiaoming; 表示創建一個結構體類型的數據叫做小明,其實就跟int a一樣,struct human只是表示這是結構體 human的數據,xiaoming值名稱。

我們看一個完整的使用示例:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming; xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';printf(" age 為:%d\n",xiaoming.age);printf(" sex 為:%c\n",xiaoming.sex);printf(" name 為:%c\n",xiaoming.name);
}

以上代碼 xiaoming.age=10; 表示xiaoming這個結構體類型數據中有一個叫做age的屬性,使用小數點加屬性名進行賦值,那么就表示將這個值存儲到這個屬性中;xiaoming.sex='T';表示存儲T這個字符到sex這個戶型中,字符類型數據需要使用單引號引起來,其中xiaoming.name='M';也是一樣;隨后使用printf進行輸出時xiaoming.age就表示在這里使用age這個屬性的值進行輸出,%d表示輸出的這個變量是個整數;下一句printf語句中使用的占位符為%c,表示的是這個位置即將輸出一個字符類型的數據,字符類的數據使用的是%c,而整數則是使用的是%d。

數組

在之前的學習中我們使用了變量存儲單個的值,那如何使用一個容器存儲多個值呢?這個時候可以使用數組。顧名思義,數組就是一個值的組合,例如示例:

#include<stdio.h>void main(){int a[]={1,2,3,4,5,99,888};}

以上代碼使用int 描述了一個名稱為a的數組,其中方括號[]表示數組,在等于號右邊使用花括號將要存儲的值括起來,并且使用逗號進行分隔,這樣就創建好一個數組了。那如何顯示數組內的值呢?這個時候我們可以使用數組名加下標去進行取值,例如我想取第一個并且顯示那么就可以寫成 printf("%d",a[0]);,在C語言中,是從0開始數數的,所以第一個我們使用的是a[0],第二個取值我們可以寫成printf("%d",a[1]);;我們可以對這些位置的值進行重新的賦值例如 a[0]=11,示例如下:

#include<stdio.h>void main(){int a[]={1,2,3,4,5,99,888};printf("%d\n",a[2]);a[2]=555;printf("%d\n",a[2]);
}

以上代碼顯示a[2]的值為3,并且修改a[2]的值為555再次輸出,結果如下:

那如何顯示所有數組a的值呢?這個時候需要使用循環,因為我們數組的取值是通過描述數組第幾個值進行存取,我們稱為下標,下標從0到數組所存儲的長度為最大,此時使用循環,設置一個變量從0開始即可取出數組內所有的內容:

#include<stdio.h>void main(){int a[]={1,2,3,4,5,99,888};int i;for(i=0;i<7;i++){printf("%d\n",a[i]);}}

以上代碼使用for循環,對數組進行讀取,由于數組長度最大為7,所以需要小于7,最后再使用變量i作為數組下標即可,結果如下:

數組也可以先指定長度最后賦值:

#include<stdio.h>void main(){int a[10];int i;for(i=0;i<10;i++){a[i]=i;}for(i=0;i<10;i++){printf("%d\n",a[i]);}}

以上代碼我們使用for循環設置數組a里面的內容,a[10]表示數組a的長度為10,能存儲10個值。隨后使用for循環設置數組a的內容,第一次為1第二次為2以此類推,最后再使用循環進行輸出,結果如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287365.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287365.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287365.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php變量的判空和類型判斷

&#xff08;1&#xff09;var_dump(); 判斷一個變量是否已經聲明并且賦值&#xff0c;并且打印類型和值 <?php $a; var_dump($a);//輸出null<?php var_dump($a);//輸出null<?php$a 10; var_dump($a);//輸出 int 10&#xff08;2&#xff09;isset() 判斷一個變量…

【Envi風暴】Envi插件大全:多波段拆分工具的巧妙使用

很多場合下需要做波段合成,比如波段432合成賦予紅綠藍,構造標準假彩色等等。合成后的文件通常包含多個單波段文件,在Envi中使用layer stacking工具將多個單波段數據合成為一個文件,如下所示: 那么問題來了,合成后的數據該怎樣拆開為原來的單波段呢?今天我們就來學習一種…

php表格怎么合并單元格格式化,table標簽的結構與合并單元格的實現方法

1.示例代碼&#xff1a;復制代碼 代碼如下:#1234一個完整的例子&#xff1a;復制代碼 代碼如下:#FirstnameLastnamePhoneQQ1qianshou111111111111111111112qianshou111111111111111111113qianshou111111111111111111114qianshou111111111111111111112.合并上下的單元格(rowspan…

Android之GridLayoutManager.setSpanSizeLookup問題

1 問題 利用BaseMultiItemQuickAdapter,用recycleView加載多布局,需要實現有些view顯示一行,有些一行顯示多個圖片。 在BaseMultiItemQuickAdapter適配器里面根據類型加載不同布局。 public ImageMultiItemAdapter(List<MultiItemEntity> data) {super(data);addIte…

《看聊天記錄都學不會C語言?太菜了吧》(9)老公餅真的有老公送?

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

@Springboot搭建項目controller層接收json格式的對象失敗

今天在使用swagger2測試的時候出錯 1、requestBody注解常用來處理content-type不是默認的application/x-www-form-urlcoded編碼的內容&#xff0c;比如說&#xff1a;application/json或者是application/xml等。一般情況下來說常用其來處理application/json類型。 2、 通過req…

『技術群里聊些啥』HttpClient 如何判斷是同一終結點

前言官方文檔對 HttpClientHandler.MaxConnectionsPerServer 屬性有如下說明&#xff1a;獲取或設置使用 HttpClient 對象發出請求時允許的最大并發連接數&#xff08;每個服務器終結點&#xff09;。請注意&#xff0c;該限制針對每個服務器終結點&#xff0c;例如&#xff0c…

【Envi風暴】Envi 5.3 SP1經典安裝手把手圖文教程(含補丁文件)

Envi 5.3具有傳感器和數據支持、圖像處理和顯示、用戶界面、二次開發等新功能,本文講解Envi 5.3 SP1完全安裝教程。 下載后的軟件包目錄如下所示: 目錄 一、Envi 5.3 SP1安裝 二、Envi 5.3 SP1下載地址 一、Envi 5.3 SP1安裝 點擊IDL_ENVI5.3 SP1win64.exe,開始安裝,…

apache php url重寫語法,apache url重寫實現偽靜態

前段時間項目為了配合seo的工作&#xff0c;把現有的php網站改成靜態頁面&#xff0c;剛拿到需求時候第一感覺就是用靜態頁面啊&#xff0c;可是看了一會以后發現頁面有點多4、50個&#xff0c;沒辦法就用比較簡單的url重寫(apache的)吧&#xff0c;去掉這個前面的#,啟用它Load…

Android之用java的socket寫服務器提示java.net.BindException: Address already in use

1 問題 在Android activity里面Java socket服務器,然后關閉activity再打開activity開啟服務的時候提示錯誤如下 java.net.BindException: Address already in use 很明顯這個,IP和端口的的socket已經使用了,我們只需要在關閉activity的時候關閉serverSocket就行了。 2 解…

《看聊天記錄都學不會C語言?太菜了吧》(10)程序媛聰明絕頂了

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

List 集合轉換為String

開發中會用到把 List<string> 的內容拼接成以逗號分隔的字符串的形式,現總結如下&#xff1a; 方法一: public String listToString(List list, char separator) { StringBuilder sb new StringBuilder(); for (int i 0; i < list.size(); i) { …

[leetcode]Pascal#39;s Triangle II

問題敘述性說明&#xff1a; Given an index k, return the kth row of the Pascals triangle. For example, given k 3, Return [1,3,3,1]. Note: Could you optimize your algorithm to use only O(k) extra space? 思路&#xff1a; the mth element of the nth row of th…

遙感方法研究張掖市1999-2010年土地利用變化

【方法思路】:本文選取張掖地區兩期影像(Landsat 1999-07-07,2010-09-07),用監督分類方法獲取各期土地利用類型,與已有的土地利用現狀矢量圖(landuse2000)相疊加,通過對比分析,進而得出張掖市1999-2010年間土地利用變化情況。 一、實驗數據 采用Landsat Tm影像,原始…

【MongoDB】遞歸獲取字段更新表達式,更新復雜數據類型對象

在實際更新Mongo對象時發現&#xff0c;原有的更新代碼無法更新復雜的數據類型對象。恰好看到張占嶺老師有對該方法做相關的改進&#xff0c;因此全抄了下來。 總的核心思想就是運用反射與遞歸&#xff0c;對對象屬性一層一層挖掘下去&#xff0c;循環創建父類及之類的更新表達…

java openxml 操作 word,openxml word轉成xml

word2007無法打開Office Open XML 文檔由于種種原因&#xff0c;如程序安裝錯誤、注冊表被修改&#xff0c;或系統被病毒侵害等。有時候會造成WORD 2007無法打開.DOC文檔的問題&#xff0c;常規的處理辦法(右鍵選擇“打開方式”)無效。可以試試如下的方法 &#xff1a;1.打開注…

聊一聊CLR源碼中的 #define 是怎么玩的

一&#xff1a;背景 如果大家看過 CLR 源碼&#xff0c;會發現里面有很多 #define 宏定義,比如說 fusionhelpers.hpp 頭文件里。如果你不熟悉 C &#xff0c;看到這些 #define 應該會很暈的&#xff0c;這篇我們就來簡單聊聊 define 的玩法&#xff0c;其實說白了很簡單, #defi…

《看聊天記錄都學不會C語言?太菜了吧》(11)2分鐘領悟數組

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

Android之android8.1打開熱點提示UID 10140 does not have Location permission和Location mode is enabled.

1 問題 在三星安卓8.1版本手機上,打開熱點 WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);wifiManager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback() {@TargetApi(Build.VERSION_CODES.O…

基于CentOS 7配置Nginx正向代理

Nginx是一款以輕量級、低內存開銷、支持緩存、支持反向代理&#xff0c;負載均衡&#xff0c;電子郵件服務而著稱。對于鮮為人知的是&#xff0c;它還可以作為一個簡單易用的正向代理服務器。本文簡要描述這個正向代理功能并給出演示&#xff0c;供大家參考。 有關Nginx的安裝請…