1.使用場景
#include#include int main(int argc, char const *argv)
; int *b,*d;
int c=2;
int *e=a; //e指向a陣列首位址
//*b=2; 無法直接初始化
//printf("%d\n", *b);
e=e+2; //移動兩個位址單元
d=&c; //d指向c的位址來表示值
c=4; //修改原c變數的值,d指標的值會發生改變
b=(int *)malloc(sizeof(int));//為b分配乙個int型空間來直接儲存值
*b=2;//分配空間後可以直接賦值了
printf("this is e,b,c,d :%d %d %d %d\n",*e,*b,c,*d);
return 0;
}
2.型別說明
(1)int *a :表示乙個指向int型變數的指標,指向的是變數的位址單元
(2)char *b:表示乙個指向char變數的指標
*a表示的是這個指標指向位址的值,a為此指標本身的位址,這點要明確,一般用*(a+1)、*(a+2)來表示值,如
int nums[5]=;
int *a=nums;
printf("%d %d %p\n",*a,*(a+1),a);
輸出為:
(3)結構體指標
typedef struct nodepnode,*linklist;
linklist p;
p=(struct node*)malloc(sizeof(struct node));
3.指標的運算
指標指向變數位址,若原變數的內容發生了變化,它本身也會發生變化,指標之間的運算一般為值運算和位址運算
(1)值運算:直接通過*運算方式,像a+*(a+1),結果為第乙個元素與第二個元素相加。
int nums[5]=;
int *a=nums;
int nums[5]=;
int *a=nums;
a=a+2;
printf("%d\n",*a);
結果輸出 C語言中指標大全
1.使用二維字串儲存字串的時候會出現儲存浪費的情況,使用指標陣列儲存則不會 char s for i 0 ifor i 0 i 3 i 2.指標陣列作為函式引數傳遞多個字串給另乙個函式。指標陣列是乙個陣列,只是裡面存放了指標 void str sort char s,int n n代表指標陣列的長度...
C語言中指標的操作
c語言中指標操作主要有以下幾種 指標減去乙個整數 模擬上面的4。指標自減 模擬上面的5.求差值 通常對指向乙個陣列兩個不同元素的指標求差值,代表兩個元素位置的差值。示例 include int main void int ptr1,ptr2,ptr3 ptr1 urn ptr2 urn 2 prin...
C語言中指標的加減運算方法示例
參考文章,值得一看 char arr 3 printf arr n d n d n d n arr,arr 1,arr 2 char parr 3 printf parr 程式設計客棧n d n d n d n parr,parr 1,parr 2 從結果可以看到,字元陣列每個元素佔1位元組,字元指...