您好,登錄后才能下訂單哦!
1.C語言中的數組有自己特定的類型
2.數組的類型有元素類型和數組大小共同決定
3.C語言中通過typedef為數組類型重命名
typedef type(name)[size];
數組指針
1.數組指針用于指向一個數組
2.數組名是數組首元素的起始地址,但并不是數組的起始地址
3.通過將取地址符&作用于數組名可以得到數組的起始地址
4.可通過數組類型定義數組指針:
ArrayType* pointer;
5.也可以直接定義:type (*pointer)[n];pointr為數組指針變量名,type為指向的數組的類型;n為指向的數組的大小。
說白了數組指針就是數組的第一個元素的地址,就是一個指針,只不過這個指針是const指針,只讀。
#include <stdio.h> typedef int(AINT5)[5]; typedef float(AFLOAT10)[10]; typedef char(ACHAR9)[9];//定義了3個數組類型 int main() { AINT5 a1; float fArray[10]; AFLOAT10* pf = &fArray;//AFLOAT10是數組類型, ACHAR9 cArray; char(*pc)[9] = &cArray; char(*pcw)[4] = cArray; int i = 0; printf("%d, %d\n", sizeof(AINT5), sizeof(a1)); for(i=0; i<10; i++) { (*pf)[i] = i; } for(i=0; i<10; i++) { printf("%f\n", fArray[i]); } printf("%0X, %0X, %0X\n", &cArray, pc+1, pcw+1); }
指針數組
1.指針數組是一個普通的數組
2.指針數組中每個元素為一個指針
3.數組指針的定義:type* pArray[n];type*為數組中每個元素的類型;parray為數組名;n為數組大小
說白了就是一個數組,里面的元素全都是指針類型的。
main函數
1.main函數可以理解為操作系統調用的函數
2.在執行程序的時候可以向main函數傳遞參數
#include <stdio.h> int main(int argc, char* argv[], char* env[])/*命令行參數的個數,命令行參數數組,環境變量數組 */ { int i = 0; printf("============== Begin argv ==============\n"); for(i=0; i<argc; i++) { printf("%s\n", argv[i]); } printf("============== End argv ==============\n"); printf("\n"); printf("\n"); printf("\n"); printf("============== Begin env ==============\n"); for(i=0; env[i]!=NULL; i++) { printf("%s\n", env[i]); } printf("============== End env ==============\n"); }
main(int argc,char *argv) { while(argc-->1) printf("%s",*++argv); }
argc代表的是系統自動獲取命令的個數,char *argv代表指針數組,argc-->1表示,先和1比較,然后在自減.
總結:
數組指針本質上是一個指針
數組指針指向的值是數組的地址
指針數組本質上是一個數組
指針數組中每個元素的類型是指針
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。