为什么指针有指向不同类型数据之别?内存中存储数据类型的不同,对于指针来讲有什么区别呢?不都是数据吗
3个回答
展开全部
1.定义指针指定的数据类型是指指向数据的类型,并不是指针的类型,指针的数据类型是内存地址类型。
2.之所以定义指针时指明它指向数据的类型,是因为有些数据类型不能进行某些操作(运算),比如两个char相乘(或相除)没有任何意义。假如说定义指针时不需要指明它指向数据的类型,那么有指针p1和p2,那么(*p1)*(*p2)在不知道p1和p2指向的数据类型时就不能保证它对数据类型运算的限制了;
3,如果你只是想用指针保存一下数据的内存地址而不去对它进行运算你可以定义void类型的指针,它能指向任何数据类型,但是他不能进行任何运算。
另外你看下C++ Primer这本书,他对指针说明的很详细;
本人语言组织能力很差,希望你能看懂。
2.之所以定义指针时指明它指向数据的类型,是因为有些数据类型不能进行某些操作(运算),比如两个char相乘(或相除)没有任何意义。假如说定义指针时不需要指明它指向数据的类型,那么有指针p1和p2,那么(*p1)*(*p2)在不知道p1和p2指向的数据类型时就不能保证它对数据类型运算的限制了;
3,如果你只是想用指针保存一下数据的内存地址而不去对它进行运算你可以定义void类型的指针,它能指向任何数据类型,但是他不能进行任何运算。
另外你看下C++ Primer这本书,他对指针说明的很详细;
本人语言组织能力很差,希望你能看懂。
展开全部
不同类型代表着如何对它使用。比如它指向的地址中数据是如何存储的,是占几个字节的。指针加1后, 其中的地址是加1呢,还是加2等等。
如 char 型占一个字节 读取它时,就只取地址中的值就好了,
int型占两个字节的话,就要读连续读两个字节才是它的值。
如 char 型占一个字节 读取它时,就只取地址中的值就好了,
int型占两个字节的话,就要读连续读两个字节才是它的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针是指向数据存储地址的,不是数据,另外,在电脑内数据都是0和1组成的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询