一道c语言指针问题,求大神解答。万分感谢。

说一下详细过程,答案是2,4,7... 说一下详细过程,答案是2,4,7 展开
 我来答
匿名用户
2019-01-28
展开全部

#include <stdio.h>

int main(int argc, char const *argv[])
{
int a[3][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8}};// 初始化二维数组

int i,(*p)[4]=a,*q=a[0];//定义变量i
//数组指针p 初始化为二维数组首地址
//一级指针q 初始化为二维数组首元素地址

for ( i = 0; i < 3; i++)//for循环,循环3次
{
if(i==0)            //如果i为0,则(*p)[0] = a[0] + 1, 即a[0]为2
(*p)[i+i/2]=*q+1;
else //否者p进行 行偏移,q进行 数组元素偏移
p++,++q;
}

for ( i = 0; i < 3; ++i)
{
printf("%d\n",a[i][i]);//打印值
}
return 0;
}
冯小气气
2019-01-28 · 知道合伙人IT服务行家
冯小气气
知道合伙人IT服务行家
采纳数:98 获赞数:239
八年编程经验,公司核心技术人员。

向TA提问 私信TA
展开全部
如果最后printf是printf("%d ",a[i][i])的话就可以这样解释:
1.二维数组实际是3个一维数组的结合a[0]={1,2,3,4} a[1]={3,4,5,6} a[2]={5,6,7,8}
2.(*p)[4]: *p指向的是a[0],*(p+1)指向的是a[1],*(p+2)指向的是a[2]
3.*q实际指向也是a[0][0]
4.第一个循环体中只有i==0时才有对数组元素的操作,表达式实际为(*p)[0 + 0 /2] = (*q)+1,即是(*p)[0]=(*q)+1,也就是a[0][0]=a[0][0]+1,即a[0][0]=1+1=2
5.输出的时候是第i行第i列元素,也就是a[0][0] a[1][1] a[2][2]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7ae28a6
2019-01-28 · 贡献了超过303个回答
知道答主
回答量:303
采纳率:0%
帮助的人:22.4万
展开全部
第二,是否能产生安全感,来自多方面的因素,有主观的和客观的。这里我们就主要谈谈主观方面。要让对方产生安全感,首先要做的就是让对方相信自己。让对方相信自己这是一件不容易的事,你必须在言谈举止方面能够体现出来,比如:说话要算数,说得到做得到,做不到就不要乱承诺;经常给她说说心里话,说说你的想法,经常问候和关心一下她的生活;无论多忙都不要不理她,经常给她一些惊喜;不要再对其它女孩太好,言谈和行动上都一样;愿意为他改掉你的不良习惯。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友de150c5
2019-01-28 · TA获得超过297个赞
知道小有建树答主
回答量:656
采纳率:60%
帮助的人:49.5万
展开全部
你的return四遍完全就是没有任何用的,你已经定义了全局变量了,不用return。问题在于你虽然敲击了回车,但那并不会被输入。所以你while循环可能会一直循环下去,直到碰巧碰到一个字符等于'\n'

#include<stdio.h>
int l,n,b,o;
int count(char a[])
{
 char *m=a;
 
 l=n=b=o=0;
 while(*m!=0)
 {
   if(*m>='0'&&*m<='9')
  n++;           //数字统计
   else if(*m>='a'&&*m<='z'||*m>='A'&&*m<='Z')
  l++;            //字母统计
   else if(*m==' ')
  b++;            //空格统计
   else
  o++;            //其他字符统计
   m++;
 }
}
int main()
{
 char str[100] = {0};
 
 printf("请输入一句话:");
 scanf("%s",str);
 count(str);
 printf("字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",l,n,b,o);
return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4be1547
2019-01-28 · 贡献了超过626个回答
知道答主
回答量:626
采纳率:0%
帮助的人:48.2万
展开全部
奇怪抱紧你摸摸头
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人和月在天
2019-01-28 · 贡献了超过1173个回答
知道答主
回答量:1173
采纳率:2%
帮助的人:86.7万
展开全部
很多事都不是绝对的,不同的人有不同的做法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式