字串
char a="abc";
printf("%s",a);
fgets(a,100, stdin) //安全的字串輸入函式
printf("%s",a);
scanf("%*[^\n]"); //兩個scanf清空輸入快取
scanf("%*c");
int 值作為實參 指標作為形參
void xchange1(int *n1,int *n2) 形參
int num1,num2;
xchange1(&num1,&num2) 實參
指標作為實參 指標作為形參
void print(int *p) 形參
int *a=null;;
print(a); 實參
陣列作為實參 指標作為形參
void print(int *p,int size) 形參
int a[4];
print(a,4); 實參
void cpy(char *first, const char *second) 形參
char a[10]="abc";
char b[10]={};
cpy(b,a); 實參
指標作為實參 二級指標作為形參
void xchange1(char **s) 形參
char *p=null;
xchange1(&p); 實參
陣列作為實參 陣列作為形參 陣列做形參的時候一定要帶上陣列的長度
void print(int arr[3][4], int x, int y) //形參 一定要帶上陣列的長度
int arr[3][4];
print(arr, 3, 4); // 實參
void print(int *arr, int n) //形參 一定要帶上陣列的長度
int array[10];
print(arr,10); // 實參
陣列指標
宣告語法:資料型別 (*指標變數名)[組內元素個數];
int (*p)[10];
int (*p)[ ][10];
*(*(二維陣列指標+i)+j) 得到的是第i組第j個元素的值
*(一維陣列+i) 得到資料第i個元素的值
int a[ 10 ];
*(a+1) = a[1];
%d int (十進位制)
%s char *
%c char
%x 十六進製制
%o 八進位制
%p 位址
%u unsigned
%ld long int
%lld long long int
(%f) / (%g) float
(%lf ) / (%lg) double
C語言 以指標作為實參的問題
以指標作為實參時,實參p傳遞給形參p1的其實是p的拷貝,所以在區域性函式中改變形參p1的指向對身處主函式的p是無影響的,但是因為p1是p的拷貝。所以他們的指向是相同的,所以可以通過p1修改了那塊記憶體的值。如果實參p的指向為空,也就是說p是乙個空指標的話,那麼它就沒有指向某塊記憶體。形參也就無法操作...
c語言基礎必備 指標陣列 and 陣列指標
對於指標陣列和陣列指標,單從字面上似乎很難分清它們是什麼,先來看看指標陣列和陣列指標各自的定義形式。指標陣列的定義形式為 是乙個陣列 型別名 陣列名 陣列長度 如 int p 8 陣列指標的定義形式為 是乙個指標 型別名 指標名 陣列長度 如 int p 8 現在來分析上述兩種定義形式,通過 int...
C語言基礎 指標陣列與陣列指標
一 指標陣列 在這一節中我們來學習乙個陣列,這個陣列比較特殊,也比較普通。說它特殊是因為這個陣列是指標的陣列,也就是說我們有乙個陣列,這個陣列裡存放的變數型別是指標型變數 說它普通是因為陣列變數其實與其它普通變數沒有什麼區別,指標變數就是一種可以存放記憶體位址的變數,所以它們也可以被定義成一串連續的...