前言
随手也写一下关于ndk开发中关于引用和指针的大致用法,就不上代码了,简单的写一下。
关于指针*
C++可以看作C语言的增强版,也就是说C++兼容C。
指针有多种类型,比如整型指针,指向一块内存区域。指针也是需要存储空间的。譬如:
int a = 5;
int *p = &5;//定义一个指针指向存储5这个数据的内存地址
&p;//取指针的内存地址
当然了,C语言的指针不止这些用法,譬如在C语言中并没有字符串,所以就有如下定义
char *ptr[10] = {"abcedf"};
这里的指针是指向字符串的首地址。
还有一种用法,就是文件指针
File *p = fopen("a.txt","rw");
总结:指针可以理解一种特殊的数据类型,指向一块内存区域,在C语言中,&就是取地址,别和C++搞混了。
关于取地址&
上面也说了,C语言中,&就只是取地址,没有其它的作用。
但是在C++中,&就是给变量取别名。譬如
&int change(int &a){注释①
a = 10;
return &a;
}
int change(int a){注释②
a = 10;
return a;
}
注释①:这里的形参传入的是a的别名,相当于是新建一个指针指向了a变量的存储地址,这里不会产生临时变量,修改的是a所在内存区域的值。
注释②:在C++中,有构造函数也有析构函数,在方法体中,a就是临时变量,存在于栈区,在方法结束后会被析构掉的。
网友评论