課堂內容
一、資料型別:
型別決定了,在記憶體中分配的位元組數,可以參與的運算型別
數值型別(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...