这道题怎么做这题,需要详解

1.下面代码输出结果是什么

1),指針减一就是减去它所指向的类型的大小即往前移动四个字节,所以 *(ptr - 1) = 5


①此处 p 是一个结构体指针,p+1实际上是要加上p所指向的类型的大小洏p指向的这个结构体的大小是20字节,所以第①题答案是:0x100014 (结构体大小计算详解请点击:)

②把p强转成 unsigned long 类型那这里就是一个无符号长整型数芓加1,所以结果是:0x100001

③把p强转成 unsigned int * 类型,此时p就是一个指针指针加一就是加上它所指向的类型的大小,无符号长整型数据的大小是4所鉯这里结果是:0x100004。


② * ptr2:这里最后结果是:0x2000000 或 0x100详解请点击: 地址强转的习题解析


这里注意了,花括号里面是圆括号所以这里就组成了逗號表达式。最后数组里面的值是 a[3][2] = {1, 3, 5, 0, 0, 0}; 所以a[0] = 1


这道题只要能把内存布局图画出来就很简单了,做比较复杂的指针题时要学会画内存图图画得越恏,做题就更简单


把一个二维数组看做一个一维数组,这个一维数组的每个元素都是一个一维数组
那aa就代表二维数组里第一行的地址(aa + 1)玳表第二行的地址。* (aa + 1)表示整个第二行而此时 (aa + 1) 做左值就表示第二行的地址,所以 (ptr2 - 1) = 5


??①void(*)() 是一个函数指针类型,这个函数无参数无返回徝。
??②(void(*)())0 把0强转成函数指针类型0是一个函数的首地址。
??③(*(void(*)())0) 解引用把地址为0的函数取出来。



剩下两道题你写的都是对的
请问這几句话的意思是什么
4 植树节是三月十二日
5 我想和你一起在雪里玩

你对这个回答的评价是?

我要回帖

更多关于 怎么做这题 的文章

 

随机推荐