C++指针 请高人来答

[复制链接]
查看11 | 回复5 | 2011-9-25 15:00:58 | 显示全部楼层 |阅读模式
从你的测试程序,能看出来,你确实晕了,呵呵先说指针是什么: 一、指针的全称叫指针变量,其定义:用来存储地值的变量叫指针变量二、地址,就是指内存地址,计算机中运行过程中,将数据和程序代码都存放在内存中,计算机通过内存地址实现代码和数据的调用三、指针变量与普通变量的关系:3-1 * 和 &操作符
*是用来指出地指中的内容,或叫引用地址(我认为这么说更准确)
&是用来获取变量的地址。3-2 使用说明int a; a=10;
a是一个整型变量,它在内存中会占有一个位置,假设其地址为:0x12345678(在32位机上,一个地址占四个字节), a=10所完成的工作是:把数值10存放到0x1234567...
回复

使用道具 举报

千问 | 2011-9-25 15:00:58 | 显示全部楼层
C++ 中cout如果输出的是指针变量或着指针值,则默认输出的是按照16进制无符号整数格式的地址值,这个值就是内存的地址编号,一般是32位无符号长整数 指针存放的地址,*p是通过该地址间接访问其中的内容,不论用*p读出和写入,与p中存放的地址无关,修改的是该地址中的内容,至于delete只是将该空间归还操作系统,并非修改了指针的内容,当然其值不变了...
回复

使用道具 举报

千问 | 2011-9-25 15:00:58 | 显示全部楼层
指针就是一个地址,保存着一个类型比如int *p = new int(100); //p指向了一个值为100的整型p就是这个整型变量的地址16进制的 就类似你的输出结果*p就是解引用或者解指针,俗一点说就是得到这个地址处保存的类型变量值只说了点简单的,C++一般还是引用了,&指针我是用的少了...
回复

使用道具 举报

千问 | 2011-9-25 15:00:58 | 显示全部楼层
我们常说的指针就是地址(其实原则上不是),但是一般这么认为,这是通俗点说法。比如定义一个整型数字int a=5;就是先给变量a分配一个int型大小的内存,当然这个内存在电脑中有一个特定的地址,现在在定义一个指向int 大小的指针 int *p;现在这个p就可以指向a的地址,p=&a;那么对p的操作就是对a的操作了。明白没...
回复

使用道具 举报

千问 | 2011-9-25 15:00:58 | 显示全部楼层
typedef是类型定义,在这里定义了一个函数指针,返回值是void,参数是(int,int,char*),这个函数指针名称是dserv::*OpcodeHandler,函数指针明白吧?就是能通过指针调用函数的。下边一句的意思是,声名了这个函数指针类型的指针数组。 哪不明白直接HI我吧...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行