指针是一个变量?还是一种数据类型? 指针是一个变量?还是一种数据类型? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 指针的类型(定义)是一个 unsigned int 长度当然视操作系统而定,决定可寻址的长度Dos/Win3.x/95 16位操作系统 = 16位指针Win98/2000/xp 32位操作系统 = 32位指针Longhorn 64位操作系统 = 64位指针 //注:一个指针占8个字节,太浪费硬盘空间了,如果指针越多的话当然,这个指针只是记录着内存的地址,而用用"类型声明"的指针只是说明指向该内存地址的数据类型是什么而已(当然,如果对该地址的数据类型很了解的话,可以轻松的使用强制类型转换) 指针本身也是一个变量。char *p, *q;strcpy(q, p);对于以上程序代码,p和q虽然是指向字符串首地址的指针,但它们本身也是变量,上面的代码的实质是p和q本身作为形参,传递到strcpy里面,产生了实参,所以,该函数不能改变p和q所指的位置(即p和q的值)。但是因为p和q的值是指向某内存的,所以strcpy可以访问内存中的字符串。 也就是说char *p;int *q;float *r;以上三个都是指针,它们本身没有类型区别。至所以要区分他们指向的类型,是char/int/float。是为了在程序的编写中提供方便,如strcpy(q,r);//错误,q和r不是指向字符的指针 指针还是应该看作一个变量,虽然它在windows编程环境中是一个占4个字节的长整型,但是它记录的却是一个地址,且这个地址是可以被修改的,所以它还是应该看作是变量 “房间号”这个词是什么?是一种事物类别,还是一个代号?这个“房间号”的房号范围是多少,是“unsigned int 长度当然视操作系统而定,决定可寻址的长度”。 目前,一般的指针是一种带有类型信息的地址容器,是个变量。它所存储的数值,就是它所指向对象在内存中的地址。之所以还带有类型信息,是因为不同类型指针所指向的内存区域有不同的存储结构,按照所指定的类型信息,才能够正确地访问该区域。指针的产生就是为了高效地操作对象以及管理对象的存储位置。它本身就存储内容上来说,和int等基本类型没有差别,就仅仅是个数值而已。 枚举网卡的问题,急 数据库中插入一条数据问题 关于父窗口与子窗口的问题 生成DLL时,怎么指定生成的文件名和后缀? 有个关于设置系统时间的问题 如何判断两个平面长方形交集? 请教指导?对于一个没有太多的基础的想在3个月左右可以学习到感觉可以找工作的语言?学习什么好呢?我知道VC是好 但它好象是太难了,学习 升级,第一次 散200分 基于单文档/视的MFC程序,可以实现支持多种扩展名的文档类型吗? 急!急!急! __declspec和_declspec到底有什么区别? 我想作一个无线网卡和AP之间的认证程序,在不知道IP地址的情况下,怎么在两个网卡之间发消息。
Win98/2000/xp 32位操作系统 = 32位指针
Longhorn 64位操作系统 = 64位指针 //注:一个指针占8个字节,太浪费硬盘空间了,如果指针越多的话当然,这个指针只是记录着内存的地址,而用用"类型声明"的指针只是说明指向该内存地址的数据类型是什么而已(当然,如果对该地址的数据类型很了解的话,可以轻松的使用强制类型转换)
char *p, *q;
strcpy(q, p);
对于以上程序代码,p和q虽然是指向字符串首地址的指针,
但它们本身也是变量,
上面的代码的实质是p和q本身作为形参,
传递到strcpy里面,产生了实参,
所以,该函数不能改变p和q所指的位置(即p和q的值)。
但是因为p和q的值是指向某内存的,
所以strcpy可以访问内存中的字符串。
char *p;
int *q;
float *r;
以上三个都是指针,它们本身没有类型区别。
至所以要区分他们指向的类型,是char/int/float。
是为了在程序的编写中提供方便,
如strcpy(q,r);//错误,q和r不是指向字符的指针
这个“房间号”的房号范围是多少,是“unsigned int 长度当然视操作系统而定,决定可寻址的长度”。