20150124 ARM C語言 指標

2021-06-28 10:08:26 字數 1173 閱讀 2384

【主要包括一大堆各種指標:

普通一維指標,陣列指標,二維指標,函式指標,陣列函式指標.....

指標:位址

資料型別 *指標變數名

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個位元組。稱之為間接引用,表示根據...