陣列
陣列本身一種資料結構,儲存資料。 int a ;char a; double a.
結構體型別
struct point
char *strs 字元指標陣列
陣列初始化的過程是陣列建立的同時並賦值的過程。
int a;//宣告
a=10;//賦值
int a=10;//初始化
char a="hello\0"
字串
結構體
struct student
struct student st=
//賦值
struct student ;
int main(int argc, const char * argv) ;
st.age=st.age+1;
//年齡的改變,相當於整型變數的應用
//注意"."語法,相當於「的」。結構體必須用點(「.」)語法
}
return 0;
}
結構體注意點語法!
使用時先定義型別;再賦值;引用列印資料。
結構體陣列:
記憶體的開闢:malloc (size)
系統申請一塊記憶體,這塊記憶體的大小由引數決定,而引數的單位為位元組。申請成功後函式返回記憶體塊起始位址,失敗返回null
calloc(n,size)
第乙個引數為分配的單元個數,第二個引數為指定單元大小。如果分配不成功也會返回空指標(null)。所申請區域內的數值初始化為0
free
用於釋放所申請記憶體塊,傳入引數為起始位址指標
例子
struct student st2;
printf("請輸入學生年齡:\n");
scanf("%d",&st2.age);
printf("請輸入學生姓名:\n");
//函式malloc動態開闢記憶體的空間
//形參 說明開闢空間的大小
//返回值 是開闢空間的首位址
//返回值型別(void*) 表示任意指標型別 注意強制型別轉化
st2.name=(char*)malloc(sizeof(char)*20);//void*代表任意型別指標
sizeof(char)為1個位元組,共20個位元組
sizeof(char));//calloc 中20為分配的單元個數,第二引數為指定單元大小
scanf("%s",st2.name);
printf("請輸入學生身高:\n");
scanf("%lf",&st2.height);
st2.phone=(char*)malloc(sizeof(char)*20);//**號碼也開闢20個空間
scanf("%s",st2.phone);
free(st2.name);//**記憶體空間
free(st2.phone);//**記憶體空間
全域性陣列和靜態陣列: 關乎到資料變數的生命週期
int max1(int a,int b)
else
return max; }
此時,max的生命週期出不了大括號,屬於區域性變數
1、全域性變數不依附於大括號,在程式**中是一直有效的,除非相關程式結束。 應用前提:好幾種不同方法都要用到的變數,那麼我們把它宣告為全域性變數。
2、靜態變數 static
意味著該變數只能被建立一次,以後不可能被建立
一次建立,永遠有效
棧區、堆區、全域性區
二分查詢演算法?氣泡排序演算法?
strcpy; strcat; strlen; strcmp
C語言陣列筆記
數型別 構造型別 陣列 概念 儲存一組資料 特點 只能存放一種資料型別的資料 元素 陣列裡面的資料 陣列定義格式 型別 陣列名 元素個數 1.陣列使用注意 array use 正確寫法 int main 第二種寫法 其他值預設為0,或不確定值 int ages 5 第三種寫法 指定數值的數 int ...
C語言筆記 指標 陣列
c語言中 指標做函式引數傳遞二維陣列有兩種基本方法 1 傳遞 陣列指標 include void output int pa 3 int n 這個函式只能輸出n行3列的二維陣列 int i,j for i 0 i2 傳遞 指標陣列 先將二 維陣列的行指標儲存到乙個指標陣列中,再將指標陣列傳遞到子函式...
C語言 陣列學習筆記
1 陣列 a 陣列的定義 型別名 陣列名 元素的個數 元素的個數必須為常量 例如 float arr1 5 陣列元素的型別是float 陣列的型別是 float 5 叫做長度為5的浮點型陣列 b 陣列的初始化 只有在第一次定義的時候才能用 一次性給元素初始化 全部初始化 例如 int arr 5 全...