对于 char s[]="2010",*p;这句的意思是定义了一个字符数组,因为定义的时候赋了初值,所以可以省略数组个数用s[],又定义了一个字符指针p,因为s是数组名也就是这个数组首元素的的地址,在 for(p=s;p
(8)第一次循环p是指向2的,用%s控制输出就是2010,第二次循环p增1指向0了,输出自然是010。这很好理解。
(9)早期的编译器是2字节,后来的编译器是4字节了,所以二者都正确。一般教科书用的是早期的系统,应该是2字节。不要纠结这些,知道就行了,若考试,按几字节算会明示的。
(10)00101111+00000010==00110001,~00000011==11111100,00110001^11111100==11001101。
(11)fp=fopen("C:\\d1.dat","wb");。
for(p=s;pprintf("%s\n",p);
这一段是这样看:
printf("%s\n",p);
printf("%s\n",p+1);
其输出就是:
2010 //这个不需解释
010 //p+1就是s+1 ,输出直到'\0'为止
到p+2时,已不满足循环条件,所以退出。
9、VC的int是4字节。变量a在内存所占字节数是__40 _
10、(2+x)^(~3)
=(00110001)^(11111100)
= 11001101
11、fp=fopen("C:\\d1.dat","wb"));