发布网友 发布时间:2024-10-24 06:39
共3个回答
热心网友 时间:2024-11-14 08:33
运行结果当然是aaaaa了,
在ch()函数中,
定义了参数char *p,用p指向ps,
随后p+=100,
就是将p又指向了ps后面的偏移了100位的地址。
在上述过程中,可以看出ps的指向的地址并没有变化。
所以输出的还是aaaaa
当然,如果这么改,ps的指向就变了:
#include<string.h>
char * ch(char *);
void main()
{
char *a[]={"aaaaa","bbbbb","ccccc"};
char *ps=a[0];
ps=ch(ps);
printf("%s\n",ps);
}
char * ch(char *p)
{
p+=100;
return p;
}
热心网友 时间:2024-11-14 08:33
考人,是编程的吧?看不懂哦,这么高悬赏分居然无人问津,唉,可惜了…
热心网友 时间:2024-11-14 08:34
#include<stdio.h>
void main()
{
int j,i,n,k,m,a[100];
printf("input the number of mongkey :\n(monkey<100)\n");
scanf("%d",&m);
j=m;
printf("input the tao tai shu zi:\n(n<m)\n");
scanf("%d",&n);
for(i=0;i<m;i++)
a[i]=i+1;
i=0;k=0;
while(j>1)
{
if(a[i]!=0)
k++;
if(k==n)
{
a[i]=0;
k=0;
j--;
}
i++;
if(i==m)
i=0;
}
for(i=0;i<m;i++)
if(a[i]!=0)
printf("the da wang shi :%d\n",a[i]);
getch();
}
问题补充:for(i=0;i<m;i++)
a[i]=i+1;
i=0;k=0;
while(j>1)
{