C語言 陣列(筆記)

2021-06-22 17:11:44 字數 1908 閱讀 3780

陣列

陣列本身一種資料結構,儲存資料。 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 全...