【主要包括一大堆各種指標:
普通一維指標,陣列指標,二維指標,函式指標,陣列函式指標.....
】
指標:位址
資料型別 *指標變數名
int a=10;
int *p = &a;
說明:*表示是定義指標, &表示取a的位址
定義之後*p---》*表示取p所指向位址裡面的內容(解引用)
指標運算(+,-)假設p = 0x100,
int array[10] ----40
int *p = array;
int *q = &array[3];
p+q = ?---沒有意義
q-p = 12/sizeof(int) ---兩個同型別的指標相減得到的是相差元素個數
p+1 = 0x104 ----指標加乙個數是等於加這個數乘以指標所指向資料型別大小(1*sizeof(int))
p-1 = 0xfc(0x100-1*sizeof(int))
二級指標
資料型別 **指標變數名 ------指標的指標儲存的是指標的位址
int a = 10;
int *p = &a;
(int *) *q = &p;
void mystr(char **buf)
int main(void)
陣列與指標,函式關係
陣列指標:本身是指標,指向的是乙個陣列
int (*p)[3]
指標陣列:本身是陣列,陣列中存的是指標
int* p[3]
指標函式:本身是函式,返回值是乙個指標
int *fun(void);
函式指標:本身是指標,指向的是一類函式
資料型別 (*變數名)(引數列表)
int (*fun)(int , int)
ARM C語言呼叫彙編函式 實現氣泡排序
三 ads除錯 本程式的關鍵是如何使用組合語言實現氣泡排序演算法。可以仿照c語言的 流程,分步驟寫出彙編的 首先要寫出最內層的 部分,也就是資料交換的彙編 資料交換可以使用str資料裝載指令實現。之後要考慮內層迴圈的 可以通過cmp指令控制迴圈次數。最後是編寫最外層的迴圈 也是使用cmp指令,來控制...
ARM C高階學習筆記(三)C語言中的字串型別
用乙個指標指向字串頭 固定尾部 字串總是以 0 來結尾 組成字串的各字元彼此位址相連 注意 指向字串的指標和字串本身是分開的兩個東西 儲存多個字元的2種方式 字串和字元陣列 include include intmain void 結果 printf sizeof d.n sizeof a 5 pr...
c語言010 指標
include int main 注意 p前面的型別決定了取位址的能力。如果是int型別的,就說明在32平台下可以取址能力是4個位元組。2 指標的本質就是儲存乙個位址,在32位的系統上,所有程式的記憶體位址都用4個位元組表示,所以不管是什麼型別的指標。指標大小都佔4個位元組。稱之為間接引用,表示根據...