一,“++”的前置输出问题
#include <stdio.h>
int main(){
int a = 1, b;
b = (++a) + (++a);
printf("a=%d\n",a);
printf("b=%d\n",b);
return 0;
}
a = 3
b = 6
二,sizeof和strlen的区别
#include <stdio.h>
#include <string.h>
int main()
{
char a[] = "abcd";
int b;
printf("b = %d\n", sizeof(a));
printf("b = %d\n",strlen(a));
return 0;
}
b = 5
b = 4
三,怎样将一个十进制数据的二进制位倒转过来(两种方法)
#include <stdio.h>int main()
{
#if 0
int a=3,b=0;
int i=0;
for(;i<4;i++)
{
b+=((a>>i)&1)<<(3-i);
}
printf("%d\n",sizeof(int));
printf("%d\n",b);
return 0;
#endif
int n = 3;
int i;
unsigned int j = 0;
for (i=0; i < 4; i++ )
{
j = j << 1;
j = j | (n & 0x1);
n = n >> 1;
}
printf("%d\n",j);
return 0;
}