一个让人感觉矛盾的字符二维数组!!!
程序1:#include "stdio.h"#include "string.h"
void main()
{char a[2][20];
int i;
for(i=0;i<2;i++)
[bold] scanf("%s",a+i);[/bold] for(i=0;i<2;i++)
printf("%s\n",a+i);
}
程序2:#include "stdio.h"
#include "string.h"
void sotr(char *p[])
{int i,j;
char *temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(strcmp(*(p+j),*(p+j+1))>0)
{temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
void main()
{int i;
char *p[10],str[10][20];
for(i=0;i<10;i++)
*(p+i)=str+i; printf("Input 10 strings:\n");
for(i=0;i<10;i++)
scanf("%s",p[i]);
sotr(p);
printf("Now ,the sequence is :\n");
for(i=0;i<10;i++)
printf("%s\n",p[i]);
}
为什么上面可以输入,下面的不可以赋给地址!希高手不吝赐教!!!