摘要:
推算程序输出:int main(){char a[1000];int i;for(i=0;i<1000;i++){a[i]=-1-i;}printf("%d",strlen(a));return 0;}strlen是遇到0出结果,循环1000次,char是-128~127,肯定会溢出,进而有0产生, 阅读全文
摘要:
switch(变量){case 值1:语句;break;case 值2:语句;break;... ...default: break;}case后只能是整型或者字符型的常量或常量表达式。const修饰的变量不能放在case后面,因它仅仅是"只读变量",并不是常量。const定义的“只读变量”不会被编 阅读全文
摘要:
int judge_endian(){union un{int i;char c;} un1;un1.i = 1;return (un1.c==1); 返回1是小端,0大端。}以存储0x12345678举例小端 大端高地址 12 78 高地址34 5656 34低地址 78 12 低地址 阅读全文
摘要:
enum color{green=1,red, //2green_red=10,green_blue //11} colorVal;sizeof(enum)=?sizeof(color)=?sizeof(colorVal)=?枚举本质就是int,上面几个都是sizeof(int)=4. 阅读全文
摘要:
int i=0,j=0;if( (++i>0) || (++j>0) )printf(“i=%d j=%d”,i,j);问输出结果解析:∵++i>0成立,程序已经得到TRUE,++j会被忽略,没机会执行∴最终输出i=1,j=0。 阅读全文
摘要:
1,常规tmp=a; a=b; b=tmp;2,进阶a=a+b; b=a-b; a=a-b;注意ab若过大,a+b可能造成越界。3,按位异或a ^= b; b ^= a; a^=b; 阅读全文
摘要:
(1) 0x01 << 2+3结果是32,因为+比移位符号优先级高。(2)#define FILE_PATH E:\\wu\\a.txt注意要用双斜杠转义字符\\(3)#define x 3#define y x+2#undef x 1#define z x-1int m=y,n=z;问m,n的值解 阅读全文
摘要:
1、int *ap[] : 即int* ap[],ap是个数组,里面元素都是int *型的。2、int *fp() : 函数fp的返回是为int*型。3、val & mask != 0 等价于 val &(mask!=0),4、c=getchar()!=EOF 等价 c=(getchar()!=EO 阅读全文
摘要:
#:①#define SQR(x) printf("x is %d",x);②#define SQR(x) printf("#x is %d",x);在程序中使用SQR(8)会得到不同结果:①x is 8②8 is 8井号#后接define的参数,#x,可以将x变为形参。##:#define XNA 阅读全文
摘要:
char *p="abc"; //p在栈区,abc在静态区,abc不可被更改,被写入会报错,p与abc是相互独立的,其关系可以被打破。char a[]="123"; //数组名a实际就是123这段存储区域的别名,不可变,所以a不能做左值。char (*p)[3] = &a; //正确赋值char ( 阅读全文