指標運算
#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...