嵌入式C語言實戰開發詳解(三)

2021-07-15 04:17:57 字數 1954 閱讀 4189

一、陣列

1、一維陣列

註明:printf(「a = %p\n」,a);// 指標常量,陣列元素首位址

printf(「&a = %p\n」,&a);//陣列的元素

&a:對一維陣列的陣列名取位址等於陣列的位址;

*(&a) = a :對一維陣列的位址取值等於陣列首元素的位址

2、二維陣列

*a:陣列首元素的位址

*(*(a+i)+j):

a+i:第i+1個一維陣列的位址

*(a+i)+ j:第i+1個一維陣列的j+1個元素的位址

*(*(a+i)+j):第i+1個一維陣列的第j+1個元素的值

3、三維陣列

*(*(*(a+i)+j)+k):

a+i:第i+1個二維陣列的位址

*(a+i):第i+i個二維陣列的首個一維陣列的位址

*(a+i)+j:第i+1個二維陣列的第j+1個一維陣列的位址

*(*(a+i)+j):第i+1個二維陣列的第j+1個一維陣列的首元素的位址

*(*(a+i)+j)+k:第i+1個二維陣列的第j+1個一維陣列的第k+1個元素的位址

*(*(*(a+i)+j)+k):第i+1個二維陣列的第j+1個一維陣列的第k+1個元素的值

4、字元的二維陣列

#include

int main()

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

return 0; }

5、陣列指標

int main() ;

char ptr[100] = 「hello world」;

char ktr[2][3][100] =

print_ptr(ptr);

return 0; }

傳一維陣列,用元素的指標來接

void print_ptr(char *ptr)

傳二維陣列,用一維陣列的指標來接

void print_src(char (*src)[100])  //步長問題 **src不可以

傳三維陣列,用二維陣列的指標來接

void print_ktr(char (*ktr)[3][100])

6、指標陣列

該陣列裡的指標都是野指標,都必須要分配空間

#include

int main()

return 0; }

二維陣列占用實際位元組,指標陣列占用4個位元組

若出現**ptr 要麼是指標變數的位址要麼是指標陣列

未完待續~~~

嵌入式C開發

將n左移m位 int byte to left move int n int m if n 1 if n 1 return ret 將n右移m位 int byte to right move int n int m if n 1 if n 1 ret n return ret 閒著無聊,自己寫了兩個...

《嵌入式C程式設計實戰》 導讀

嵌入式c程式設計實戰 本書是為致力於使用微控制器來設計嵌入式系統的人們準備的。本書將翔實的理論與真實的實踐相結合。現在由微控制器管理的嵌入式系統無處不在,汽車 機械人 辦公室 醫療裝置 機械 家居,以及其他各種各樣的需求中都可以看到它們的身影。乙個典型的微控制器包括了處理器 儲存器和外部裝置。乙個嵌...

《嵌入式C程式設計實戰》 導讀

本書是為致力於使用微控制器來設計嵌入式系統的人們準備的。本書將翔實的理論與真實的實踐相結合。現在由微控制器管理的嵌入式系統無處不在,汽車 機械人 辦公室 醫療裝置 機械 家居,以及其他各種各樣的需求中都可以看到它們的身影。乙個典型的微控制器包括了處理器 儲存器和外部裝置。乙個嵌入式系統c開發者需要對...