C语言的指针

时间:2014.10.31 发布人:

C语言的指针

已解决问题

谷歌用户在2014.10.31提交了关于“网游之纵横天下C语言的指针”的提问,欢迎大家涌跃发表自己的观点。目前共有2个回答,最后更新于2025-02-22T19:58:55。

#defineDISK_REGISTER((structDISK_REGISTER_FORMAT*)0xc0200142)

此时的DISK_REGISTER是什么?

DISK_REGISTER_FORMAT是一结构体的标签名,0xc0200142是一个地址

希望大家能够帮助她。

详细问题描述及疑问:

#defineDISK_REGISTER((structDISK_REGISTER_FORMAT*)0xc0200142)

此时的DISK_REGISTER是什么?

DISK_REGISTER_FORMAT是一结构体的标签名,0xc0200142是一个地址

期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意 !
希望以下的回答,能够帮助你。

第1个回答

用户名:Chevady  

DISK_REGISTER就是一个指向地址0xc来自0200142的结构体指针,其值为0xc0200142,(stru触你也征ctDISK_REGISTER_FORMAT*)即结构体指针类型。


第2个回答

用户名:匿名用户  

错解了。p没有指向a[0][0],因为使用*p不能输出a[0][0]的值,逐细洋*p才是指向a[0][0]的,因为**p就是a[0][0]的值,而且*p输出的是&a[0][0]的地址。p是指向的a[0]也就是说p=&a[0]=a+0;的,也就是指向的二维数组的第一行。p++=&a[1]=a+1;也就是指向二维数轮程飞决黄组中的第二行。总之,要记住的是a[1]才是指向的二维数组中第2行第1个元素的地址。而&a[1]表示的就是二维数组中第二行的行地址。同样,因为a=a+0,表示的是二维数组中第一行的行地址。因此a+1就是表示的是二维数组中第二行的行地址。还要记住:[]这个运素派策氢仍算符的的运算法则是,把左侧的地址加上[]内的偏移量然后再求指针运算,注意有[]运算符的地方就有个隐含的指针,比如x[2]表示的就是将指针x偏移2个单位量后再求指针运算。也就说x[2]与*(x+2)是相等的。