C語言指標

2021-08-18 18:12:19 字數 1526 閱讀 8551

指標運算
#includeint main(void)

; int *ptr1,*ptr2,*ptr3;

ptr1=urn;

ptr2=&urn[2];

printf("ptr1=%p,*ptr1=%d,&ptr1=%p\n",ptr1,*ptr1,&ptr1);

//指標加法

ptr3=ptr1+4;

printf("ptr1+4=%p,*(ptr1+3)=%d\n",ptr1+4,*(ptr1+3));

ptr1++; //遞增

printf("ptr1=%p,*ptr1=%d,&ptr1=%p\n",ptr1,*ptr1,&ptr1);

ptr2--; //遞減

printf("ptr2=%p,*ptr2=%d,&ptr2=%p\n",ptr2,*ptr2,&ptr2);

--ptr1;

++ptr2;

printf("ptr2=%p,ptr1=%p,ptr2-ptr1=%d\n",ptr2,ptr1,ptr2-ptr1);//指標減另乙個指標

printf("ptr3=%p,ptr3-2=%p\n",ptr3,ptr3-2);

return 0;

}

求差值:兩個指標間的差值,通常對分別指向同乙個陣列內的兩個元素的指標求差值,以求出元素之間的距離,差值單位是相應型別的大小。

指標與二維陣列

#includeint main(void)

,,,};

printf("zippo=%p,zippo+1=%p\n",zippo,zippo+1);

printf("zippo[0]=%p,zippo[0]+1=%p\n",zippo[0],zippo[0]+1);

printf("*zippo=%p,*zippo+1=%p\n",*zippo,*zippo+1);

printf("zippo[0][0]=%d\n",zippo[0][0]);

printf(" *zippo[0]=%d\n",*zippo[0]);

printf("**zippo=%d\n",**zippo);

printf("zippo[2][1]=%d\n",zippo[2][1]);

printf("*(*(zippo+2)+1)=%d\n",*(*(zippo+2)+1));

return 0;

} // zippo[m][n]==*(*(zippo+m)+n)

分配記憶體 malloc()和free()

#include#includeint main(void)

while(i++i;

printf("%d\n",number=i);

for(i=0;iif(i%7!=0)

putchar('\n');

puts("done");

free(ptd);

return 0;

}

C語言指標

指標變數是包含記憶體位址的變數,它指向記憶體中的一塊區域,通過指標的值,可以間接訪問到相應的記憶體單元的資料,並做相應的修改。1 指標的定義和簡單使用 定義乙個指標變數和定義一般的變數類似,只需在變數名前面加乙個 對乙個指標變數賦值可以用取位址符 來獲取到乙個變數的位址,如果要獲得指標指向的記憶體區...

C語言指標

1 定義指標變數void change int n 格式 變數型別 變數名 定義了乙個指標變數p 指標變數只能儲存位址 指標變數p前面的int 指標變數p只能指向int型別的資料 int main void change int n 2 指標與陣列 陣列名其實質是乙個指標,但是它和普通的指標變數還是...

c語言指標

編寫程式,在主函式裡用指標陣列輸入六個字串,再用另乙個函式對這六個字串排序,並在主函式中輸出排好序的字串。include void sort char s,int n char temp for int i 0 ifor int j 0 jif strcmp s j s j 1 0 temp s j...