C++指针和引用

来源:互联网 发布:打脸 知乎 编辑:程序博客网 时间:2024/05/22 11:45

1.Java中的传值和传址的问题

java中基本数据类型传递的是值,也就是一份copy对函数体本身的值的改变是没有什么影响的

Java中对象传递的就是地址了,对对象属性的操作会影响会影响函数体内本身的对象

String是一个特殊的对象,他是存在内存中的栈区,所以String a = "a",String b = "b"   a==b才会输出true

2.C++的指针和引用,引用只是一个别名,取出对象的地址,下面的例子能很好的说明

#include "iostream.h"
int main()
{

   int i=3;
   int *iptr=&i;
   int **iptrptr=&iptr;//iptr也是变量,也能够获取它的地址
   cout <<"Address of Var i=" <<iptr <<endl;//输出iptr存储的内容,即i在内存中的地址
   cout <<"Data of Var i=" <<*iptr <<endl;//输出iptr所指向的变量
   cout <<"Address of Pointer iptr=" <<iptrptr <<endl;//输出iptr在内存中的地址
   cout <<"Address of Var i=" <<*iptrptr <<endl;//输出iptrptr所指向的变量,即iptr
   *iptr=2+*iptr;//*iptr可以作左值
   cout <<"Data of Var i=" <<*iptr <<endl;
   return 0;
}

运行结果:
Address of Var i=0x0012FF7C
Data of Var i=3
Address of Pointer iptr=0x0012FF78
Address of Var i=0x0012FF7C
Data of Var i=5

0 0
原创粉丝点击