使用ref关键字的参数可以理解成传引用,在程序退出作用域后,指针和引用传递的值都会改变,从这点来看,两者具有相似性。但两者不是一个东西。ref有点类似于c++里面的影子变量的概念。撸主有兴趣可以自行搜索。但是c#里有指针,但属于非安全代码。
作用是一样的 只不过那个不叫指针,用法也不是指针的用法
在C#中是不允许使用指针的,除非使用unsafe来标记语句块
以下用C++说明.
Note1:
就代码来说, ref是高阶写法(比较好用), 指针是低阶写法.
编译後内部是一样的.
Note2:
ref的用法举例:
void inc(int& x) { x++; }
使用法 int a= ...; inc(a);
Note3:
pointer的用法举例:
void inc(int* px) { (*px)++; } 使用法 int a= ...; inc(&a);
这就是Note2的低阶形.