A-A+

在设备驱动程序(函数)Dev_drv1中 对指针ptr的说明如下:【C语文代码】 int D

2022-08-06 05:22:38 问答库 阅读 176 次

问题详情

在设备驱动程序(函数)Dev_drv1中,对指针ptr的说明如下:
【C语文代码】
int Dev_drv1(int arg1,int arg2 )
{
struct node {
int ID;
char name [20];
int range;
} ;
struct node *ptr;
/*其他局部变量声明,略*/
ptr = (struct node *)malloc(sizeof(struct node)*100);
/*其他程序代码,略*/
}
设int为32位整数,char占8位。当对指针ptr赋完值后的值为0x3751CO,若再执行一条“ptr++;”语句,此时ptr的值为多少? (用十六进制表示)。请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:ptr的值为以下均按正确对待。0x3751DC或3751DCH或十六进制3751DC或3751DC。
ptr的值为以下均按正确对待。0x3751DC,或3751DCH,或十六进制3751DC,或3751DC。 解析:本题考查对C语言指针变量的理解。在指针赋予某一变量的地址后,该指针就指向该变量所分配的地址空间。需要强调的是,指针变量是有类型的,指针的值加1,表示增加按其声明类型所占的字节数,而不是增加一个字节的地址。因此ptr++后ptr的值比原来增加28个字节,当前的值应为0x3751DC。

考点:指针,函数