二级指针怎么使用啊?
5个回答
展开全部
指向指针的指针变量说明的一般形式为:类型说明符 **指针变量名;
例子:
void main()
{
int k,*p,**pp;
k=8;
p=&k;
pp=&p;
printf("x=%d\n",**pp);//*pp=p,**pp=k=8
}
编写程序指向指针的指针变量输出多个字符串的值:
#include<stdio.h>
int main()
{
char *pDay[]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
char **ppDay;
int i;
for(i=0;i<7;i++)
{
ppDay=pDay+i;
printf("%s ",*ppDay);
}
printf("\n");
return 0;
}
例子:
void main()
{
int k,*p,**pp;
k=8;
p=&k;
pp=&p;
printf("x=%d\n",**pp);//*pp=p,**pp=k=8
}
编写程序指向指针的指针变量输出多个字符串的值:
#include<stdio.h>
int main()
{
char *pDay[]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
char **ppDay;
int i;
for(i=0;i<7;i++)
{
ppDay=pDay+i;
printf("%s ",*ppDay);
}
printf("\n");
return 0;
}
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
展开全部
用内存地址去理解吧,一级指针是指向定义类型的内存地址,二级指针就是指向定义类型的内存地址所指向的新的内存地址。我举一个例子。
#include
void main()
{char *day[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
char **p;
int n;
printf("请输入日期:\n");
scanf("%d",&n);
printf("对应英语日期:%s\n",*(p n-1));/* *(p n-1)还是指针,指向的n-1位元素的首地址 */}
这就是二级指针的用法,定义一个指针数组*day[]里面包含7个字符串,如果你想输出字符串,你就需要一个二级指针,因为一级指针只能寻址到字符串所在的位置,如:n=3,*p则能找到星期三所在的位置而已,并不能将其输出,因为没有其首地址,而**p则完成二级寻址,找到了星期三,也找到了它的首地址,所以能输出(字符串输出指针移动是系统自动移动的)
#include
void main()
{char *day[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
char **p;
int n;
printf("请输入日期:\n");
scanf("%d",&n);
printf("对应英语日期:%s\n",*(p n-1));/* *(p n-1)还是指针,指向的n-1位元素的首地址 */}
这就是二级指针的用法,定义一个指针数组*day[]里面包含7个字符串,如果你想输出字符串,你就需要一个二级指针,因为一级指针只能寻址到字符串所在的位置,如:n=3,*p则能找到星期三所在的位置而已,并不能将其输出,因为没有其首地址,而**p则完成二级寻址,找到了星期三,也找到了它的首地址,所以能输出(字符串输出指针移动是系统自动移动的)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
和楼上同解,但我稍微详细说一下
2级指针就像是一个2维数组a[i][j]
2级指针就好比我上面的数组里的a[i]这一级的
1级指针就好比我上面的数组里的a[i][j]这一级的。
2级指针就像是一个2维数组a[i][j]
2级指针就好比我上面的数组里的a[i]这一级的
1级指针就好比我上面的数组里的a[i][j]这一级的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-07-18
展开全部
#include<stdio.h>
main()
{
int a[5]={1,3,5,7,9};
int *num[5],i;
int **p;
for(i=0;i<5;i++)
num[i]=&a[i];
p=num;
for(i=0;i<5;i++)
{
printf("%d ",**p);p++;
}
}
#include<stdio.h>
main()
{char *name[]={"Follow me","BASIC","Grate Wall","FORTRAN","Computer design"};
char **p;
int i;
for(i=0;i<5;i++)
{
p=name+i;
printf("%s\n",*p);
}
}
指向指针数据的指针用的是“二级间址”方法,从理论上说,间址方法可以延伸到更多的级,即多重指针。但实际上在程序中很少有从超过二级间址的。级数愈多,愈难理解。
main()
{
int a[5]={1,3,5,7,9};
int *num[5],i;
int **p;
for(i=0;i<5;i++)
num[i]=&a[i];
p=num;
for(i=0;i<5;i++)
{
printf("%d ",**p);p++;
}
}
#include<stdio.h>
main()
{char *name[]={"Follow me","BASIC","Grate Wall","FORTRAN","Computer design"};
char **p;
int i;
for(i=0;i<5;i++)
{
p=name+i;
printf("%s\n",*p);
}
}
指向指针数据的指针用的是“二级间址”方法,从理论上说,间址方法可以延伸到更多的级,即多重指针。但实际上在程序中很少有从超过二级间址的。级数愈多,愈难理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二级指针 就是指针的指针
和指针没啥区别的
和指针没啥区别的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询