主题:一对{}引发的错误“血案”
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define A 5
main()
{
char *s[]={"abc","ede","aef","esi","eil"};
int i,k,j;
char **p,*w;
p=s;
for(i=0;i<A-1;i++)/* 进行选择排序*/
{ k=i;
for(j=i+1;j<A;j++)
if(strcmp(*(p+k),*(p+j))<0)
k=j;
if(k!=i)
{w=*(p+j);
*(p+k)=*(p+i);
*(p+i)=w;
}
}
for(i=0;i<A;i++)
printf("%s\n",*(p+i));
getch();
}
这个程序的作用是在进行用指向指针的指针对5个字符串进行选择排序,但是现在的程序会出现,错误,就是在运行的时候,请看图片::::
如果我要是在if(strcmp(*(p+k),*(p+j))<0)
上面加一个{就是可以解决问题了。请各位讨论一下,这个为什么,啊,第二个for语句不是控制了这个过程了?为什么还要加一个{》?如果不加,岂不是也在执行for(j循环?