1.
#include <stdio.h>
#include <string.h>
#include <cstring>
int main(){
char s[5][8]={"red","yellow","green","blue","white"};
int i,j;char t[8];
for(i=0;i<1;i++)
for(j=i+1;j<5;j++)
if(strlen(s[i])<strlen(s[j])){//i=0是,当s[j]=s[1]yellow赋值给s[i],s[i]大于后面s[j],green,blue,white的值 ,直接跳出不执行if语句
strcpy(t,s[i]);strcpy(s[i],s[j]);strcpy((s[j]),t);//strcpy是把后面的值赋给前面的变量
printf("%s\n",s[0]);
}
}
结果:
2.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int a=0,b=1;
if(a++&&b++)
printf("T");
else{
printf("F\n");
}
//printf("b=%d\n",b);
a=b++;
printf("a=%d\nb=%d",a,b);//相当于a=b再执行b=b+1;
}
结果:
3.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int a,b=1;
a=(b++)+(++b)-(--b);//a=1+3-2,首先b自增1,b=2,++b,b=3,--b后,b=2
printf("%d",a);
}
结果:
4.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char b[]="abcdefg",*chp=b;
while(*chp){
if((chp-b)%3==0)
//printf("%d\n",chp-b);//chp-b是字符指针之差;
putchar(*chp);
++chp;
}
}
结果:
5.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int a=-1,b=2;
for(;a++&&b--;)//a++在表达式里,仍是a,表达式完成以后,自加1
printf("%d,%d",a,b);
printf("%d,%d",a,b);
}
结果: