12 26上課記錄

2021-10-01 18:54:23 字數 3203 閱讀 9511

課堂內容

一、資料型別:

型別決定了,在記憶體中分配的位元組數,可以參與的運算型別

數值型別(int ,char ,double/float)

void

構造型別(陣列,指標,結構體 )

結構體struct student //型別

struct student stu; //int a; a=3;

stu.num=2019001;

stu.name[0]=『z』

*/常量

4----int

3.6----double

3.6f----float

注意:整型和字元型在一定範圍通用

『a』==65

char c=128//錯,128超過了char能表示的範圍(-128~127)

unsigned char c=128;//對

二、輸入輸出

c語言本身比提供輸入輸出語句,由庫函式提供

scanf(「格式字串」,位址) %lf—double %c

scanf("%d%c",&a,&c); 123x 不能加空格,否則空格給了c

printf(「字串」)------原樣輸出字串,通常用於提示

printf(「格式字串」,變數名) char s=「hello」 printf("%s",s);char * str=「hello」 printf("%s",str);

三、對資料進行運算(數值型運算、非數值型運算)------------運算子

運算子的作用,優先順序,結合性,表示式的值

算術 % / ++ –

賦值 = +=

關係 == 1四、流程控制

1、順序

2、選擇

1)if(表示式)

語句;if(4)

if(a)<=>if(a!=0)

if(!a)<=>if(a==0)

2) if(表示式)

語句1else

語句23) if…else巢狀

else和if的配對

4)switch(表示式)//表示式任意合法

while(表示式);

3)for(表示式1;表示式2;表示式3)//表示式3一定會執行,哪怕迴圈體中遇到continue

語句4)break; 跳出所在的迴圈

continue; 跳過迴圈體下面的語句,接著執行下一次迴圈的判斷(如果是for迴圈,則先執行表示式3,然後在進行下一次迴圈條件的判斷)

5)迴圈的巢狀:外迴圈執行一次,內迴圈執行一輪

五、陣列—處理批量同型別資料,陣列在記憶體中占有連續一段記憶體,陣列名代表陣列首的位址,並且是常量,不能改變

(一)一維陣列

1、陣列的定義

型別 陣列名[常量]

2、陣列的初始化:定義的同時賦值

int a[10]=//部分賦值,陣列的大小必須指定,其餘陣列元素的值為型別所預設的值

int a=//全部初始化,則可以省略陣列大小

3、陣列元素的引用

陣列名[下標]

int b[5];

b[0]=1;

利用迴圈遍歷陣列

for(i=0;i<5;i++)

b[i]

(二)二維陣列 --------按行存放,是一維陣列的陣列

1、陣列的定義

型別 陣列名[常量][常量]

2、陣列的初始化:定義的同時賦值

int a[10][4]=,,}//部分賦值,陣列的大小必須指定,其餘陣列元素的值為型別所預設的值

int a[3]=,,,}//全部初始化,則可以省略陣列第一維大小

int a[3]=,,,}//部分賦值,但按行賦值,此時也可以省略陣列第一維的大小

3、陣列元素的引用

陣列名[行標][列標]

int a[5][4]; -------a是乙個一維陣列,裡面有5個元素a[0],a[1],a[2],a[3],a[4],每個元素又都是乙個一維陣列,裡面有4個元素

a[0][0]=1;

利用雙重迴圈遍歷陣列

for(i=0;i<5;i++)

for(j=0;j<4;j++)

a[i][j]

對於方陣(行列相等)

上三角i>=j

下三角i<=j

對角線i==j

(三)常見演算法

1、排序

2、增刪改查

3、最值

(四)字元陣列

char ch[10];

scanf("%s",ch);

printf("%s",ch);

字串處理函式

六、函式—模組化程式設計

1、函式的定義

函式的型別 函式名(形參1型別 形參1,形參2型別 形參2…)

、返回值只能有1個,函式體中return語句可以有多個,但是只有乙個能執行

2、函式的呼叫

函式名(實參1,實參2…) 實參的個數和形參保持一致,型別和形參要賦值相容,實參一定要有確定的值

呼叫時 1)流程轉到被呼叫函式

2)給被呼叫函式的區域性變數,分配記憶體空間

3)實參的值一一對應傳給形參,執行函式體語句

呼叫結束 1)流程回到函式呼叫處

2)收回被呼叫函式中區域性變數占有的記憶體空間

3)將返回值帶回

引數的傳遞

形參是普通變數 傳遞的是值

形參是陣列名 傳遞的是值(址)

3、函式的宣告(函式原型的宣告)----為了編譯系統檢查函式呼叫語句的合法性

4、全域性變數/區域性變數

七、指標

1、指標變數的定義

基型別 * 指標變數名

int * p

2、指標變數的賦值

int a;

int *pa=&a;

3、指標變數的引用

p=位址

*p=指向的記憶體中的內容

&取位址,後面只能跟變數

*取位址裡面的內容,後面必須是指標(位址型別的變數)

4、指標指向陣列

5、指標指向字串

char *s=「hello」

*s!=』\0』

指標*p的理解:p代表位址(p的值是乙個位址),*p代表該位址下存放的值

例: int a=10,*p;//a的位址編號為 1703724

p=1703724;

printf("%d,%d",*p,p);

程式執行的結果為 10,1703724

*p代表指向位置的資料,p表示指向的位址編碼.

上課記錄2019 3 12

from ipython.core.interactiveshell import interactiveshell interactiveshell.ast node interactivity all a 3 b 5 a b a b 815dir builtins 左右兩個下劃線內建函式用法 資...

上課記錄04 02

可變與不可變 分片必定產生新的序列 在等號右邊 必定產生新的序列 然後將新的序列位址賦予給等號左邊的變數 對可變變數來說 a b 相當於直接在原值上操作 a 1,2,3 b a.copy複製外層的值 淺拷貝b的改變不影響啊 c a c的改變會影響a 保留字def定義函式 函式的引數傳遞 位置引數 關...

上課記錄 Day6

html css和bootstrap框架的關係是什麼 下列 布局合理嗎?不合理的話,應該怎麼改進 不合理 名字跟暱稱應該各分為一塊 名字 暱稱 絕對路徑和相對路徑的差別是什麼 col md 6 col xs 6這兩個類分別表示什麼含義 col md push 6 col md offset 6 co...