日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言程序设计详细版 (学习笔记1) 看完不懂,我也没办法。

發布時間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言程序设计详细版 (学习笔记1) 看完不懂,我也没办法。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序設計與C語言

  • 計算機語言
  • 程序設計與算法
  • 最簡單的C語言程序
  • 數據類型
    • 關鍵字與標識符
      • 關鍵字
      • 標識符
    • 常量與變量
      • 常量
      • 變量
    • 數據類型
      • 基本類型
      • 構造類型

計算機語言

計算機語言是人與計算機之間通信的語言(人與計算機能夠交流的語言),由一些指令組成,包括數字,符號,語法等。
那什么是計算機語言🙌??
計算機語言包括機器語言,匯編語言,高級語言

  • 機器語言:這個貨是能夠被計算機直接識別的語言,是由二進制數0和1組成的一串指令集和,but這對于我們程序員來說,機器語言是不便于記憶和識別的

  • 匯編語言:把不易理解的,記憶的機器語言按照對應關系轉換成匯編指令,這些匯編語言是用英文字母和或符號串來代替機器語言,but這對于我們程序員來說還是挺難的,因為匯編語言依賴于硬件,即程序的移植性極差,我們在使用計算機時,需要我們去學習新的匯編指令,這對于我們是非常麻煩的

  • 高級語言:便是我們現在使用的編程語言(c#,Java,python等),易于理解,記憶和使用(真的是這樣的嗎🤷?♂?,為什么我學起來hai那么難🤷?♀?·······)

程序設計與算法

算法是程序設計的靈魂
什么是算法勒?

  • 算法:字面意思:解決問題的方法與過程
    算法將要解決的實際問題和解決實際問題的計算機程序聯合起來

最簡單的C語言程序

我們直接代碼開頭

#include<stdio.h>//頭文件 int main() //函數入口 {printf("你好,世界!\n"); //語句塊,打印語句return 0;//返回值}

簡單來說,一個C程序就是由若干頭文件和函數組成

  • #include <stdio.h> 就是一條預處理命令,它的作用是通過C語言的編譯系統在對C程序編譯之前做一些預處理操作
  • 一個C程序只有一個主函數,即main函數。這個主函數C語言中唯一的入口
  • 在main前面的是主函數的類型
  • printf()是格式輸出函數。在這里我們只需要記住它的功能就是在屏幕上輸出指定的信息,給我們看
  • \n是轉義字符中的換行符
  • return是函數的返回值,根據函數類型的不同,返回值得類型也是不同的

這些大概就是最簡單的代碼了吧,從你開始學就已經回不了頭了。

其次我們要養成良好的書寫習慣!!!!

因為你的代碼并不只是要求能運行,還要美觀易讀。有可讀性的代碼才是有價值的代碼,如果你寫完代碼,別人根本看不懂,甚至你自己都看不懂,那么這個代碼就沒法修改,如果程序需要升級或者要修改漏洞,效率就會很低!

程序解釋——注釋
C語言注釋方法有兩種:
多行注釋:

/*這是多行注釋*/ /*這是我生命中那舉步維艱但又不朽的歲月,我學會了一切皆是暫時的.機遇.感情.人群.鮮花.我學會了愛是給予,是一切,讓其受傷.我學會了暴露弱點是一個正確的選擇,因為那很容易洞悉這世間冷暖炎涼*/

單行注釋

//單行注釋//生活就是不斷崩潰 不斷自愈

我們需要記住
注釋是寫給程序員看的,不是寫給電腦看的。

數據類型

C語言的基礎知識包括關鍵字,標識符,常量,變量,數據類型,運算符

關鍵字與標識符

關鍵字

關鍵字:是指在編程語言里事先定義好(減輕了我們的工作量),并被賦予了特殊含義的單詞,也稱作保留字,他們具有特殊的含義,不能被我們隨意使用的字符,每一個關鍵字都有屬于他自己特殊的作用
特征:

  • 在編譯器中會顯示特殊的顏色

. C語言中的關鍵字 (32個) auto、double、int、struct、break、long、 switch、else、case、enum、register、typedef、char、extern、return、union、construction、float、short、unsigned、continue、for、signed、void、default、goto、sizeof、volatile、do、if、while、static
最新版中多加了五個(restrict、inline、_Bool、_Complex、_Lmaginary)

這時候有人就會問,這么多我怎么記呀😣。你這不是為難我嗎??
別急呀這些我們現在只需要了解一下,等后面遇到了,用到了,我們在理解,加深記憶和運用

標識符

標識符: 在我們的編程過程中,我們需要定義一些符號來標記一些數據或內容(就像朋友給我們起的小名一樣),有變量名,方法名,參數名,數組名等

C語言規定,

  • 標識符可以是字母(A~Z,a~z)、數字(0~9)、下劃線_組成的字符串
  • 標識符不能以數字作為第一個字符
  • 標識符不能是C語言中的關鍵字(關鍵字在哪里???在上面)
  • 注:

標識符的長度最好不要超過8位,

標識符是嚴格區分大小寫的。例如name和Name 是兩個不同的標識符。

標識符最好選擇有意義的英文單詞組成做到"見名知意",不然別的程序員看代碼看不懂,想打人😡,叫他自己來看他寫的代碼,他也看不懂,我頓時在心里給他一個懷懷的一筆,當然那些大牛人物除外。

常量與變量

常量

常量:在程序運行期間,固定不變的量。是那個值,就是那個值。
常量的分類:

  • 字符串常量:凡是用雙引號引起來的部分,叫做字符串常量。例如:“abc”、“2b”.
  • 整數常量: (%d)整數類型的常量,直接寫上的數字,沒有小數點。例如:100。
  • 浮點數常量:(%f)直接寫上的數字,有小數點。例如:-2.5。
  • 字符常量:(%c)凡是用單引號引起來的單個字符,叫做字符常量。例如:‘a’、‘中’。
  • 布爾常量:只有兩種取值。true、false。
  • 空常量:null。代表沒有任何數據
#define 標識符 常量值 #include<stdio.h> #define MONEY 3000 //定義常量及常量值 int main() {printf("你的花唄額度為%d元\n",MONEY) ;//你猜支付寶會多給你錢嗎?//并不會,因為他早已經給你定好了,不會改變的 return 0; } //運行結果你的花唄額度為3000

變量

變量:就是可以變化的量,而每個變量都會有一個名字(標識符)。變量占據內存中一定的存儲單元。使用變量之前必須先定義變量,要區分變量名和變量值是兩個不同的概念。

變量定義的一般形式為:數據類型 變量名
多個類型相同的變量:數據類型 變量名, 變量名, 變量名…

接下來我們直接上代碼。用代碼說明

#include<stdio.h> int main() { int love; //定義一個整型變量,變量名字叫love love=520; //給love變量賦值為520 int a,b,c,d; //同時聲明多個變量,然后分別賦值 a=1; b=2; c=3; d=4; printf("%d\n%d\n%d\n%d\n%d\n",love,a,b,c,d);//打印整型變量love,a,b,c,d //運行結果 520 1 2 3 4 }

注意:在定義中不允許連續賦值,如int=a=b=c=d;這是不合法的

數據類型

數據類型用于聲明不同類型的變量或者函數,而變量的類型決定了變量存儲占用的空間以及存儲模式
C語言中中的數據類型分為4種,分別是基本類型,構造類型,指針類型,空類型

基本類型

基本類型: 整型,字符型,浮點型
我這邊只列出了我們經常要用的🐱?🏍🐱?🚀

數據類型說明字節應用例子
char字符型1用于儲存單個字符char sex=‘m’
int整型2用于存儲整數int height=170
folat單精度浮點型4用于存儲小數float price=12.5
double雙精度浮點型8用于存儲位數更多的小數double pi=3.1415926

這里我們說一下格式化輸出語句,這也是比較重要的

格式化輸出語句,是將各種類型的數據按照格式化后的類型及指定位置,輸出到計算機屏幕上,顯示給我們

printf("輸出個格式符",輸出目標)//這里輸出目標變量名等 #include<stdio.h> int main() {int a; //定義整型變量aa=1; //給a賦值為1printf("%d\n",a) ; //輸出 achar b; b='a'; printf("%c\n",b);float c=3.14;printf("%f\n",c);printf("%s","你好世界");//還可以這樣printf("整數:%d 小數:%f 字符:%c",a,c,b);return 0; } 運行結果: 1 a 3.140000 你好世界 整數:1 小數:3.140000 字符:a

構造類型

C語言提供的基本數據類型(字符型,整型,浮點型)并不能夠滿足后面復雜程序的設計需求,因此
C語言允許用戶根據自己的需求自定義數據類型,這些自定義的數據類型稱為構造類型
構造類型:有數組,枚舉;共用體,結構體
1.數組
數組:是一組具有相同數據類型的變量集合,這些變量稱為數組的元素,數組的類型由數組中存儲的元素的類型決定

2.枚舉類型
在實際編程中,有些數據的取值往往是有限的,只能是非常少量的整數,并且最好為每個值都取一個名字,以方便在后續代碼中使用(減少了工作量,使代碼簡潔)比如一個星期只有七天,一年只有十二個月,一個班每周有六門課程等。

枚舉類型:用于定義值可以被一 一列舉的變量,具體格式如下:

enum 枚舉名{標識符1=整型常量1,·······}

我們直接來看代碼👩?🏫

#include <stdio.h> #define Mon 1 //是不是很熟悉,有點陌生?再去上面常量看一看🤬😡 #define Tues 2 #define Wed 3 #define Thurs 4 #define Fri 5 #define Sat 6 #define Sun 7 int main(){ int day; scanf("%d", &day); switch(day){ case Mon: puts("Monday"); break; case Tues: puts("Tuesday"); break; case Wed: puts("Wednesday"); break; case Thurs: puts("Thursday"); break; case Fri: puts("Friday"); break; case Sat: puts("Saturday"); break; case Sun: puts("Sunday"); break; default: puts("Error!"); } return 0; } 運行結果: 5 Friday

但是副作用是宏名較多,代碼松散,看起來總是有點不舒服,我們給他優化一下

int main(){enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;

這就叫做代碼優化😂😂😂😂😂😂
這對于我們以后寫項目的時候還是很有用的
3.共用體
共用體又叫聯合體,它可以把不同數據類型的變量整合到一起。
共用體數據類型使用union關鍵字進行聲明上面關鍵字找找,是不是用到了。這時候我們在記憶和理解這個關鍵字的用法
格式如下:

union 共用體類型名稱 {數據類型 成員名1;數據類型 成員名2;········· }

上代碼(*  ̄3)(ε ̄ *)

#include <stdio.h> #include <string.h>union Data {int i;float f;char str[20]; };int main( ) {union Data data;data.i = 10;data.f = 220.5;strcpy( data.str, "C Programming");printf( "data.i : %d\n", data.i);printf( "data.f : %f\n", data.f);printf( "data.str : %s\n", data.str);return 0; } //運行結果 data.i : 1917853763 data.f : 4122360580327794860452759994368.000000 data.str : C Programming

為啊么只有最后一個值顯示出來了,????????
因為之后賦給變量的值占用了內存位置

定義了共用體變量之后,需要對共用體變量進行初始化,對公共體變量進行初始化時,只能對其中一個成員進行初始化。同一時間只能使用到一個成員

union 共用體類型名 共用體變量={其中一個成員的類型值}

少廢話,上代碼

//實例 #include <stdio.h> #include <string.h> union Data {int i;float f;char str[20]; }; int main( ) {union Data data;data.i = 5;printf( "data.i : %d\n", data.i);data.f = 250.2;printf( "data.f : %f\n", data.f);strcpy( data.str, "C Programming");printf( "data.str : %s\n", data.str);return 0; } //運行結果 data.i : 5 data.f : 250.200000 data.str : C Programming //在這里,所有的成員都能完好輸出,因為同一時間只用到一個成員。

理解理解理解了沒有
結構體
在上面我們講解了共用體,它是一組具有相同類型的數據的集合。在實際的編程過程中,我們需要一組類型不同的數據,例如對于學生信息登記表,姓名為字符串,學號為整數,年齡為整數,所在的學習小組為整數,成績為小數,因為數據類型不同,顯然不能用一個數組來存放。

姓名學號年齡學習小組成績
charintintintfloat

在C語言中,可以使用結構體(Struct)來存放一組不同類型的數據。結構體的定義形式為:

struct 結構體名{結構體所包含的變量或數組 };

結構體是一種集合,它里面包含了多個變量或數組,它們的類型可以相同,也可以不同,每個這樣的變量或數組都稱為結構體的成員(Member)。
別廢話,上代碼🐱?🏍🐱?🏍🐱?🏍🐱?🏍

struct stu{ char *name; //姓名 int num; //學號 int age; //年齡 int group; //所在學習小組 float score; //成績 };

這里stu 為結構體名,它包含了 5 個成員,分別是 name、num、age、group、score。結構體成員的定義方式與變量和數組的定義方式相同,只是不能初始化。

注意大括號后面的分號;不能少,這是一條完整的語句。

結構體也是一種數據類型,它由程序員自己定義,可以包含多個其他類型的數據。

像 int、float、char 等是由C語言本身提供的數據類型,不能再進行分拆,我們稱之為基本數據類型;而結構體可以包含多個基本類型的數據,也可以包含其他的結構體,我們將它稱為復雜數據類型或構造數據類型。

結構體變量

既然結構體是一種數據類型,那么就可以用它來定義變量。
例如:struct stu stu1, stu2;
定義了兩個變量 stu1 和 stu2,它們都是 stu 類型,都由 5 個成員組成。
注意關鍵字struct不能少

stu 就像一個“模板”,定義出來的變量都具有相同的性質。也可以將結構體比作“圖紙”,將結構體變量比作“零件”,根據同一張圖紙生產出來的零件的特性都是一樣的。

你也可以在定義結構體的同時定義結構體變量:

struct stu{ char *name; //姓名 int num; //學號 int age; //年齡 int group; //所在學習小組 float score; //成績 } stu1, stu2;

將變量放在結構體定義的最后即可。

如果只需要 stu1、stu2 兩個變量,后面不需要再使用結構體名定義其他變量,那么在定義時也可以不給出結構體名,如下所示:

struct{ //沒有寫 stu char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在學習小組 float score; //成績 } stu1, stu2;

這樣做書寫簡單,但是因為沒有結構體名,后面就沒法用該結構體定義新的變量。

成員的獲取和賦值

結構體和數組類似,也是一組數據的集合,整體使用沒有太大的意義。數組使用下標[ ]獲取單個元素,結構體使用點號 . 獲取單個成員。獲取結構體成員的一般格式為:

結構體變量名.成員名;

通過這種方式可以獲取成員的值,也可以給成員賦值:

#include <stdio.h> int main(){ struct{ char *name; //姓名 int num; //學號 int age; //年齡 int group; //所在小組 float score; //成績 } stu1; //給結構體成員賦值 stu1.name = "周杰倫"; stu1.num = 1001; stu1.age = 18; stu1.group = 1; stu1.score = 100; //讀取結構體成員的值 printf("%s的學號是%d,年齡是%d,在%d組,今年的成績是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score); return 0; } //運行結果 周杰倫的學號是1001,年齡是18,在1組,今年的成績是100.0

除了可以對成員進行逐一賦值,也可以在定義時整體賦值,例如:

struct{ char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在小組 float score; //成績 } stu1 = { "周杰倫", 1001, 18, 1, 100 }; //運行結果 周杰倫的學號是1001,年齡是18,在1組,今年的成績是100.0

不過整體賦值僅限于定義結構體變量的時候,在使用過程中只能對成員逐一賦值,這和數組的賦值非常類似。

需要注意的是,結構體是一種自定義的數據類型,是創建變量的模板,不占用內存空間;結構體變量才包含了實實在在的數據,需要內存空間來存儲。


你們說是不是有問題,這和上面的共用體有什么區別,你講了干什么??
這就是共用體與結構體的區別:

共同體:使幾個不同類型的變量共占一段內存(相互覆蓋)。所占內存長度是最長那個成員占的內存長度。

結構體:把不同類型的數據組合成一個整體。所占內存長度是各成員占之間的內存長度的總和。

結構體我們這里大概說一下,😂😂😂😂后面還會遇到的(你這是大概嗎,。。。。。。)

從現在做起,堅持下去,一天進步一小點,不久的將來,你會感謝曾經努力的你!

如果又出錯的,請各位友友指正。

新人報到,各位友友們,給我個三聯(點贊,關注,收藏)

總結

以上是生活随笔為你收集整理的C语言程序设计详细版 (学习笔记1) 看完不懂,我也没办法。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。