
c语言 printf("**(p+1) %d\n",**(p+1)); 后面是什么意思啊?
#include<stdio.h>voidmain(){int(*p)[4];//一个指向有4个元素int数组的指针pinta[4]={11,22,33,44};p=&a...
#include<stdio.h>
void main()
{
int (*p)[4];//一个指向有4个元素int数组的指针p
int a[4]={11,22,33,44};
p=&a;
printf("**(p+1) %d\n",**(p+1));
}
后面**(p+1)输出的到底是什么啊?
输出结果看似是首地址,但是如果改成p+2 就编程了另外的不知是什么的数
求解**(p+1) 打底是什么意思~~~ 展开
void main()
{
int (*p)[4];//一个指向有4个元素int数组的指针p
int a[4]={11,22,33,44};
p=&a;
printf("**(p+1) %d\n",**(p+1));
}
后面**(p+1)输出的到底是什么啊?
输出结果看似是首地址,但是如果改成p+2 就编程了另外的不知是什么的数
求解**(p+1) 打底是什么意思~~~ 展开
7个回答
展开全部
printf("**(p+1) %d\n",**(p+1));
这是一个输出函数,默认会打印在输出终端上,即执行的dos窗口。
参数为"**(p+1) %d\n",**(p+1),所以printf会先打印字符串"**(p+1) ",
然后根据格式字符%d, 将**(p+1)的值以整型形式打印出其值。
最终输出换行符'\n'。
这里的**(p+1),打印为整型,说明p为int **型,而**(p+1)就是p上偏移一个int*类型空间后,取出其指向的值,并在这个值的地址上取出一个整型值。这个值就是最终值。等效于
数组形式p[1][0]。
这是一个输出函数,默认会打印在输出终端上,即执行的dos窗口。
参数为"**(p+1) %d\n",**(p+1),所以printf会先打印字符串"**(p+1) ",
然后根据格式字符%d, 将**(p+1)的值以整型形式打印出其值。
最终输出换行符'\n'。
这里的**(p+1),打印为整型,说明p为int **型,而**(p+1)就是p上偏移一个int*类型空间后,取出其指向的值,并在这个值的地址上取出一个整型值。这个值就是最终值。等效于
数组形式p[1][0]。
展开全部
**p相当于*(*(p+0)+0),如果打印**p结果是11,
**(p+1)相当于*(*(p+1)+0),指向的值已经不再数组内了!
**(p+1)相当于*(*(p+1)+0),指向的值已经不再数组内了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这越界了 *(p+1)相当于指向a[2][0]但是a[2][0]并不存在
*(*(p+0)+1)就输出了 a[1] 这个理解了你就懂
*(*(p+0)+1)就输出了 a[1] 这个理解了你就懂
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
後面是要在%d位置要对应显示的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的是一个随机数啦
表示的是一个数组指针
表示的是一个数组指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询