几道简单的C语言题?
(1)长整型变量=0x12345678,该变量的内存地址是0x100000,问在内存中0x100002,0x100003中存的是什么?(2)int*p1,*p2;P1=(...
(1)长整型变量=0x12345678,该变量的内存地址是0x100000,问在内存中0x100002,0x100003中存的是什么?
(2)int*p1,*p2;
P1=(int*)0x800000;
P2=(int*)0x800008;
p1-p2=?
(3)Null和0区别?
(4)Linux 进程调度有那些算法?
(5)可执行二进制文件中分那些段?
请加简单分析.... 展开
(2)int*p1,*p2;
P1=(int*)0x800000;
P2=(int*)0x800008;
p1-p2=?
(3)Null和0区别?
(4)Linux 进程调度有那些算法?
(5)可执行二进制文件中分那些段?
请加简单分析.... 展开
展开全部
(1)0x100002中的是0x34 0x100003中的是0x12
原因是长整型占4个字节,0x100002,0x100003中保存的是前面高位的2个字节,所以分别是0x12 0x34
我用下面这段测试代码可以看到:
#include <stdio.h>
void main()
{
long int a=0x12345678;
char *p=(char *)&a;
printf("%u\n",&a);
printf("%x\n",a);
printf("%u\n",&a+1);
printf("%x\n",*(p+2));
printf("%x\n",*(p+3));
}
(2)p1-p2=-2
这题和上面那题差不多,而且也会因编译器的不同而不同。在我的编译器里int占4个字节,所以他们的差就是8/4=2。如果占2个字节那么就是8/2=4。这个测试代码我就不用写了,抄抄就行。
(3)NULL是空,0是一个int数0,区别比较明显。比如说int a=0;能说a==NULL吗?
原因是长整型占4个字节,0x100002,0x100003中保存的是前面高位的2个字节,所以分别是0x12 0x34
我用下面这段测试代码可以看到:
#include <stdio.h>
void main()
{
long int a=0x12345678;
char *p=(char *)&a;
printf("%u\n",&a);
printf("%x\n",a);
printf("%u\n",&a+1);
printf("%x\n",*(p+2));
printf("%x\n",*(p+3));
}
(2)p1-p2=-2
这题和上面那题差不多,而且也会因编译器的不同而不同。在我的编译器里int占4个字节,所以他们的差就是8/4=2。如果占2个字节那么就是8/2=4。这个测试代码我就不用写了,抄抄就行。
(3)NULL是空,0是一个int数0,区别比较明显。比如说int a=0;能说a==NULL吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询