
一道C语言题,应该不难,涉及指针,求高手详解~
#include<stdio.h>main(){intk=2,m=4,n=6,*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\...
#include <stdio.h>
main()
{int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);
printf("%d\n",n);
} 展开
main()
{int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);
printf("%d\n",n);
} 展开
5个回答
2011-02-18
展开全部
*(p=&n)=*pk*(*pm);
//等价于下面两个语句:
p=&n;
*p=*pk*(*pm);//等号右边就是2*4 ,因此n的值最后为8
//等价于下面两个语句:
p=&n;
*p=*pk*(*pm);//等号右边就是2*4 ,因此n的值最后为8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是8,首先p=&n说明p指向n,*(p=&n)即*p,也就是n,指针的运算优先于乘法运算,所以等号右边为8,即n=8.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
void newcopy(char *new1,char *old);
char old[50]="jfklaFJLAJFAfjlakf";
char new1[50];
printf("%s\n",old);
newcopy(new1,old);
printf("%s\n",new1);
return 0;
}
void newcopy(char *new1,char *old)
{
char *p1 = new1;
char *p2 = old;
while(*p2)
{
if(*p2<='z' && *p2>='a')
p2++;
else
{
*p1 = *p2;
p1++;
p2++;
}
}
*p1 = '\0';
}
**************************************************************
若还有不清楚的请补充提问,明白请记得处理问题
**************************************************************
int main()
{
void newcopy(char *new1,char *old);
char old[50]="jfklaFJLAJFAfjlakf";
char new1[50];
printf("%s\n",old);
newcopy(new1,old);
printf("%s\n",new1);
return 0;
}
void newcopy(char *new1,char *old)
{
char *p1 = new1;
char *p2 = old;
while(*p2)
{
if(*p2<='z' && *p2>='a')
p2++;
else
{
*p1 = *p2;
p1++;
p2++;
}
}
*p1 = '\0';
}
**************************************************************
若还有不清楚的请补充提问,明白请记得处理问题
**************************************************************
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
8
以及该是void main()
以及该是void main()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询