一、陣列
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開發者需要對...