首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于指针施用

2013-01-23 
关于指针使用static AFX_MSGMAP_ENTRY _messageEntries[]{...}({...}代表里面有内容)AFX_MSGMAP_ENTRY*

关于指针使用
static AFX_MSGMAP_ENTRY _messageEntries[]={...};({...}代表里面有内容)
AFX_MSGMAP_ENTRY* lpEbntries=(AFX_MSGMAP_ENTRY*)&(_messageEntries);

_messageEntries不就是_messageEntries[]的地址吗,为什么还要加个&,而且为什么前面还强制类型转换成AFX_MSGMAP_ENTRY*

AFX_MSGMAP_ENTRY* lpEbntries= _messageEntries;不行吗
[解决办法]
指向数组的指针和指向数组第一个元素的指针是两码事。

数组是一种独立的类型,和int没什么区别,一个指向数组的指针+1则偏移整个数组大小的内存地址。
数组名是数组第一个元素的地址,+1则偏移一个元素的内存地址。

注意C语言基础功。
[解决办法]
可以简单写个程序测试下


        //a 、&a、(int*)&a值相同,类型不同
        //a-------int*
        //&a-----int(*p)[3]
        //(int*)&a-----int* 
int a[] = {1,2,3};
cout<<"a = "<<a<<endl;
cout<<"&a = "<<&a<<endl;
cout<<"(int*)&a = "<<(int*)&a<<endl;

cout<<"a+1 = "<<a+1<<endl;
cout<<"&a+1 = "<<&a+1<<endl;
cout<<"(int*)&a+1 = "<<(int*)&a+1<<endl;

热点排行