C的~巨急

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:23:55
#include <stdio.h>
void ch(char *);
void main()
{
char *a[]={"aaaaa","bbbbb","ccccc"};
char *ps=a[0];
ch(ps);
printf("%s\n",ps);

}
void ch(char *p)
{
p+=100;

}

运行结果为什么是aaaaa?

运行结果当然是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;
}

考人,是编程的吧?看不懂哦,这么高悬赏分居然无人问津,唉,可惜了…

#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++;