C语言中指针的使用方法
生活随笔
收集整理的這篇文章主要介紹了
C语言中指针的使用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.使用場景
使用指針時,必須將它指向一個變量的地址或者為它分配空間方能使用,如下所示:
#include<stdio.h> #include <stdlib.h>int main(int argc, char const *argv[]) {int a[5]={0,1,2,3,4};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]={0,1,2,3,4}; int *a=nums;printf("%d %d %p\n",*a,*(a+1),a);輸出為:
(3)結構體指針
typedef struct node{int data; struct node * next; }pnode,*linklist;linklist p;?p=(struct node*)malloc(sizeof(struct node));p即結構體變量,它本身類型為struc node *類型,使用時,必須為它分配空間或指向此結構體對象地址方能進行下一步操作。
?
3.指針的運算
指針指向變量地址,若原變量的內容發生了變化,它本身也會發生變化,指針之間的運算一般為值運算和地址運算
(1)值運算:直接通過*運算方式,像a+*(a+1),結果為第一個元素與第二個元素相加。
int nums[5]={0,1,2,3,4};
int *a=nums;
(2)地址運算:通過a+i的方式.指針會指向a的下i個地址。
?
結果輸出2
?
?
總結
以上是生活随笔為你收集整理的C语言中指针的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb学习之路——jsp与ser
- 下一篇: 用指针来表示二维数组的方法