嵌入式學習筆記(第六天)c語言續

2021-08-04 04:03:23 字數 2514 閱讀 8536

陣列

:將同型別的同作用的變數,放在一起統一管理,

所有元素,在記憶體中,都是連續儲存的,

陣列在宣告的時候就需要確定多少個元素,記憶體空間是一次性開闢成功

使用陣列的某一元素,需要使用陣列名加下標的方式使用,下標從零開始計數

陣列初始化

int arr[5]=;   arr[0] 陣列首位址

資料型別:

基本資料型別

指標型別

列舉型別

指標--> 指標型別變數  

*p1=a;

p1=&a; 

指標只是乙個儲存位址編號的變數

指標型別只是普通資料型別之一

*p  間接引用  可以取到或修改 這塊記憶體位址上儲存的內容  

指標的指標

二級指標   **p1

指標陣列

陣列中全是指標的陣列

加1 , 在陣列中移動

加* , 取出對應位址的內容   

int a = 2;

int b = 3;

int c = 4;

int * p1 = &a;

int * p2 = &b;

int * p3 = &c;

int * parr[3] = ;

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

二維陣列 a   可看成多個一維陣列

int arr[行][列

] ==  int arr

int arr    相同列數的 多個一維陣列

*(arr+1) 在乙個陣列中移動,移動了一列  ==arr[0]-->arr[1]

arr 行指標

行指標加* 變成列指標

列指標加& 變行指標

字串實現基於字元陣列

字串有有效字元

字串結束標誌:'\0'

宣告字串就是宣告乙個字元陣列

strcmp (arr,brr)==0  比較字串是否一樣

strlen(name1)==strlen(name2) 確定字串是否一樣

strlen(name);  字串有效位是多少

sizeof(name);  name儲存寬度

strcat (name1,name2);    將

name2

接到name1

後輸出   越界問題

name1

儲存空間是否夠容納

name2

strcpy  (

str1,str2

)  把二拷貝給一

char name[20] = "jack";

int age = 40;

char result[50];

sprintf(result,"姓名

:%s,

年齡:%d",name,age);   

將「」裡的內容作為

result  

printf("%s\n",result); 函式:

return 函式名(

needs

)   返回值 函式名 引數需求  

void myprintf();                 void 不需要返回

int myprintf();                  返回值為

int型變數 形參

:在宣告函式時,用來代替真實輸入值

實參:函式呼叫時,輸入的真實值

不需要改變外界的值的時候,傳變數本身,也就是賦值傳值

要改變外界的值的時候,傳變數的位址。傳址

標頭檔案包含

aa .c --->aa .h

在.h 檔案中  寫入函式宣告及巨集定義

#ifndef _filename_h_

#define _filename_h_

巨集定義  #define name_len 20

函式宣告;

#endif

gcc編譯器處理步驟:

預處理    -e

彙編    -s

編譯    -c

gcc -c a.c -o a.i      -o  給新名字

make 編譯管理工具   

建立makefile檔案格式

main:main.o a.o b.o

gcc main.o a.o b.o -o main

main.o:main.c

gcc -c main.c -o main.o

a.o:a.c

gcc -c a.c -o a.o

b.o:b.c

gcc -c b.c -o b.o

變數 : 必須先宣告

宣告可以多次 ,不開闢空間。

定義只能一次 , 會開闢空間。

後定義再使用

關鍵字: static  靜態變數 :

生命週期變長,整個程式存續期間都存在

,值能夠儲存下來,

初始化語句只執行一次

extern   宣告外部變數 , 告訴編譯器,變數宣告在別的檔案 ,暫時忽略定義錯誤,一般用在全域性變數上   

學習嵌入式第六天

1.c語言基礎之結構體 結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為變數 指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員 member 且這些成員可以為不同的型別,...

蘇嵌嵌入式實訓第六天

課程總結 1 函式的三要素 函式名 形參 返回值 函式名 命名 自注釋性 動詞 名詞 函式引數 引數是什麼型別,形參就要定義成什麼型別 傳位址和返回值 只當使用不修改實參變數的值,傳實參變數名 當使用以及修改實參變數的值,傳實參變數的位址 2 記憶體管理 2g的物理記憶體空間分成4g的虛擬位址空間 ...

C 第六天學習

一次性儲存或者宣告多個相同型別的變數 陣列 陣列型別 陣列名 new 陣列型別 陣列長度 int nums new int 10 nums 0 1 nums 1 2 nums 2 3 nums 3 4 nums 4 5 nums 5 6 nums 6 7 nums 7 10 nums 8 9 num...