c语言指针和地址的概念 二级指针的三种应用场合

C语言中指针和地址的概念 。二级指针的三个应用是什么?二级指针是指向指针的指针 。当需要通过一个函数修改主调函数中的主指针时(对一个主指针有副作用),可以在被调用函数的参数中使用一个次指针,次指针可以指向主调函数中的主指针 。接下来说一下C语言指针和地址中二级指针概念的三个应用 。你不妨参考以下内容,希望对你有所帮助!

c语言指针和地址的概念 二级指针的三种应用场合


C语言中指针和地址的概念二级指针的三个应用二级指针是指向指针的指针 。
当需要通过一个函数修改主调函数中的一级指针(对一级指针有副作用)时,可以在调好的函数的参数中使用一个二级指针,这个二级指针指向主调函数中的一级指针 。
当需要返回一个动态二维数组时,可以通过一个二级指针指向一个动态一维指针数组,然后一维指针数组中的每个指针指向一个一维动态数组,形成一个动态二维数组 。
当需要通过一个函数修改主函数中的指针数组时(对指针数组有副作用),可以在被调用函数的参数中使用一个二级指针,这个二级指针可以指向主函数中的指针数组元素(一级指针,数组名是在一定上下文中指向数组第一个元素的具有常量属性的指针) 。
1单链表操作(需要修改链表头时):
# include & lt;stdio.h & gt# include & lt;malloc.h & gtstruct Node {int data;struct Node * next;};void list insert(struct Node * * head,int data){struct Node * new Node =(struct Node *)malloc(sizeof(struct Node));new node-& gt;数据=数据;new node-& gt;next = NULLif(*head!= NULL)new node-& gt;next = * head* head = new node;//头节点是实节点}Void list print(struct node * head){while(head!= NULL){printf(& # 34;% d & # 34,head-& gt;数据);head = head-& gt;接下来;}printf(& # 34;\ n & # 34);}void list del(struct Node * head);//省略int main(){struct node * head = null;for(int I = 1;我& lt11;i )listInsert(&head,I);list print(head);getchar();}
2返回一个动态二维数组 。
# include & lt;stdio.h & gt# include & lt;malloc.h & gtint ** retArr2D(int r,int c){int * * arr =(int * *)malloc(sizeof(int *)* r);for(int I = 0;我& ltr;I){arr[I]=(int *)malloc(sizeof(int)* c);}return arr;}int main(){int I,j;int r=3,c = 4;int **arr = retArr2D(r,c);for(I = 0;我& ltr;I)for(j = 0;j & ltc;j)arr[I][j]=(I 1)*(j 1);for(I = 0;我& ltr;I){for(j = 0;j & ltc;j)printf(& # 34;- ",arr[I][j]);printf(& # 34;\ n & # 34);}getchar();}
3操作指针数组
# include & lt;stdio.h & gt# include & lt;string.h & gtvoid sort(char * * States,int n)//char * States[]{char * pt;int i,j,k;for(I = 0;我& ltn-1;I){k = I;for(j = I ^ 1;j & ltn;j )if(strcmp(states[k],States[j])& gt;0)k = j;if(k!= I){pt = States[I];States[I]= States[k];States[k]= pt;}}}void print(char * States[],int n){int I;for(I = 0;我& ltn;I)printf(& # 34;% s \ n & # 34,States[I]);}int main(){char * States[]= { & # 34;中国& # 34;,"美国& # 34;,"澳大利亚& # 34;,"法国& # 34;,"德语& # 34;};int n = 5;sort(states,n);print(states,n);getchar();}
【c语言指针和地址的概念 二级指针的三种应用场合】-结束-
,

    推荐阅读