为什么对象声明需要指针,对象指针是干什么用的定义这个有什么意义

1,对象指针是干什么用的定义这个有什么意义对象指针和变量指针作用一样,只不过可以用父类指针指向子类对象运行时动态调用的函数,是多态的一种体现你好!就是用来找对象的 。如果对你有帮助,望采纳 。
2,面向对象C类中声明成员属性时指针和引用的区别和用法以及如NULL;//一般直接初始化为NULL , 你也可以通过构造方法给传进来个参数 } //A ma这个可以不用初始化了;可以连用好几个但是.不行,即可以p-> A ma; &nbsp , 然后就不报错了 这个没看明白呀!(指针在使用前,一定要初始化;a.function(); c , 让它指向一个真实的对象;&nbsp,不让程序就崩溃了) &nbsp:指向在对象所在的地址; (*p); &nbsp,所以 后面是&nbsp,可以直接用 //A& ra; A中的mrA,要如何初始化 , 还可以更改其所指向的地址,改为指向其他对象; A& ra(a) pa = ra; A* pa.ma与p->ma有什么区别?这个在最终的用途上是没有区别的,所有对引用的操作,都会影响原来的对象 。使用时直接使用&nbspclass &nbsp,但是要在构造函数中实例指针的对 &nbsp,声明时可以不定义,而后;这时(*p);引用;pa->mpB->pa->&nbsp?和B中的A& ra的初始化方法一样,都是使用初始化列表初始化; ma 我发现->&nbsp,都是调用对象的ma成员变量.map 是个指向对象的指针 所以是p->即可指针;这个需要在初始化列表中初始化&nbsp,明确它所指向的对象 , 而且以后就不可以更改了;&nbsp:ra(a) Bpublic: B(A& a); &nbsp:是给一个对象起一个别名 , 在声明的时候就得定义,只是写法不一样(*p) 这个表示的是一个对象
3,我是c语言初学者我想请教下在c语言中为什么要引入指针这个概念在计算机中,所有的数据都是存放在存储器中的 。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍 。为了正确地访问这些内存单元,必须为每个内存单元编上号 。根据一个内存单元的编号即可准确地找到该内存单元 。内存单元的编号也叫做地址 。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针 。内存单元的指针和内存单元的内容是两个不同的概念 。可以用一个通俗的例子来说明它们之间的关系 。我们到银行去存取款时,银行工作人员将根据我们的帐号去找我们的存款单,找到之后在存单上写入存款、取款的金额 。在这里,帐号就是存单的指针, 存款数是存单的内容 。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容a. p+=2; *++p; //指针地址+2后右先自加1得到指向4的地址b. p+=3; *p;//效果同ac. p+=2; ++*p; //这个地址虽然到了指向3的地址,但是它又值自加了一次(其他的都是地址自加),结果为4d. p+=2; *p++ //这个首先是地址到了指向3的位置 , *p++先输出3,然后p++,d的结果为输出3 , 地址指向4所以答案是dC语言引入指针,是为了直接操作计算机内存 。这个功能使得可以用C语言写操作系统、驱动程序之类系统底层的程序 。指针的微妙之处:1、每个指针本身有一个对应的内存单元 , 这个内存单元中可以存放别的变量、函数等等的内存地址 。2、指针是有类型的 。如char*,int*,float*,double*,void*等等 。3、指针类型,决定了指针+1,-1等操作实际移动的距离 。移动的距离是对应类型的sizeof()值 。换句话说,指针+1,-1不是移动一个内存单元 。4、指针要指向某个实际对象 , 或者通过malloc()函数给它分配一个内存后,才有了确定的意义,才能进行操作 。否则会出错!5、指针操作 , 越界了,编译程序不知道,常常引起系统错误,甚至破坏系统?。?、指针也可以指向指针,或者指针的指针 。比如int **p 。这个有时会让人很困惑 。【为什么对象声明需要指针,对象指针是干什么用的定义这个有什么意义】
4,C语言中关于指针指向声明必要性的请教楼主问这个问题 , 看来至少对指针有一定了解,我给你举个例子说明为什么要指定类型吧,比如 , 我定义了int *p;p = p + 1;这个例子,你知道p 最后是等于多少吗?是在原来的地址,再偏后4个字节,同样的,如果是char *p;的时候,那就是偏移一个字节,这就是为什么需要指定指针的类型了 。void * 的问题,是的,void *可以指向任何类型的数据,只不过有一点要注意 , 在你使用的时候 , 需要强制转换下它的类型 , 比如void *p;int a;(int *)p = &a;有什么不明白可以继续追问 。全国计算机等级考试是非计算机专业人员计算机水平的力证,证书全国通用,目前很多用人单位常常把其作为招聘条件之一.指针是用来存储“地址x” , 申明x中内容的类型是为了让系统知道x的大?。臃峙渥愎坏牡刂房占淅创娣攀?。事实上,存放在x中的值是x中内容存放在内存中的第一个位置 。只有知道x中内容的类型,系统才知道需要读几个字节的地址空间 。1、定义指针的时候为什么需要指明指向类型?答:这样做只是为了后面的程序操作方便,因为一些指针操作依赖于指针指向的类型?。。”热?nbsp;, 取内容操作,指针自增,自减操作 , 等等,另外,空类型的指针是不能取内容的,因为不知道指针指向的类型?。。?、不论何种类型的指针,指针只是一个地址容器,WIN下占据4个字节,存放4字节长的地址,空类型指针由于指向的类型为空,所以它可以存放任意类型的指针(地址) 。类型声明就意味着定义了存储空间结构 。如果你定义的指针是一个struct pointer,那么读取的方式就是按照定义的struct空间结构 。例如struct这个struct占用了8byte的空间,如果定义了struct的数组a[n] , 那么a++就代表指针便宜8byte的空间 。楼主,指针的存储包括两个存储地址,当完成一个指针定义的时候,系统会分配两个存储空间给这个指针 。一个是指针名称本身的地址 。这个地址字节长度是确定的;另一个就是指向特定类型的内存地址,不同的类型占用的空间是不一样的 , 只是事先指明了是什么类型的 , 系统才会给特定的类型分配特定的存储空间 。明白了吗?5,C 需要指针变量的意义这个例子是无所谓的指针存在的意义就是可以用来表示动态数组,也可以做为参数传递给函数C/C++中数组的定义如果是int a[100]的话,必须给出确定的数组长度 , 这样容易造成空间的浪费或不够用,不够用的话就不好办指针的话,它可以指向一段连续的内存,指针的值则是内存的首地址,这样的话就无所谓空间的浪费或不够用了,直接往后续就行如int* a = (int*)malloc(10*sizeof(int));声明长度为10的动态数组,数组名就是指针变量的名a,要是不够用了,realloc就可以:a = (int*)realloc(a,10*sizeof(int));(好像是这么用的),可见扩容很方便传参的话,C语言函数一定是值传递 , 传入的形参是实参的拷贝,这样的话形参传进去后,函数改变形参的值 , 外部的实参的值绝不会变化 。如果传入的实参的地址 , 函数内部用指针获?。涂梢愿谋涫挡蔚闹担?因为指针的值,就是实参的内存空间 。要说指针变量对于C语言的意义,那就好像太阳对于地球的意义一样,没有它,一切都暗淡了……当然,从你这个例子里面 , 指针就是来打酱油的 。不过这个例子的目的也就是仅仅告诉你一件简单的事:指针可以指向一个变量 。简单的事情往往可以创造奇迹 。有了一个指向变量的东西 , 参数传递才可以实现“引用” , 面向对象才得以从理论走向现实,才有了JAVA、C++、.Net等等这些超强大的晚辈,我好像说得有些远,不如你耐心继续往下学习,渐渐体会“指针可以指向一个变量”到底都能做哪些想象不到的事情?看你的需要了,有时不用指针作为参数达不到你要的效果,比如一个swap()函数 。int swap(int a,int b) { int tmp; tmp=a; a=b; b=tmp; } 如果你想调用该函数交换两个变量的值,在主函数中输出,那是不可能的 。比如这样调用: int x=1,y=2; swap(x,y); printf("%d %d",x,y); 你认为会输出2 1吗?错!还是会输出1 2的 。因为传入swap()函数的只是x,y的拷贝 , 而不是它们自身 。如果要真正达到交换的目的,就要用指针传值 。这样定义函数: void swap(int *a,int *b) { int tmp; tmp=*a; *a=*b; *b=tmp; } 但是给函数传值时要注意,指针是指向地址的 , 所以参数要是地址,即需要给变量取地址 。int x=1,y=2; swap(&x,&y); printf("%d %d",x,y); 这样就是输出2 1了!

    推荐阅读