[C++]1,Android码农是如何进入腾讯的

66 阅读1分钟

指针在声明的时候最好进行初始化。初始化的方式如下:


int *pstr=NULL;

NULL是一个在c++标准库中定义为0的指针常量。内存地址中0表示的地址是不可访问的,也就是说对内存地址为0的指针变量进行取值操作时将会出错。

下面是NULL指针常量的一个例子:


#include <iostream>



using namespace std;



int main(){

int *pstr=NULL;



cout<<"pstr value is:"<<pstr<<endl;//(1)

cout<<"*pstr value is:"<<*pstr<<endl;//(2)

}

运行可以看到程序出错,注释语句(2)可以看到代码正常运行输出为:


pstr value is:0

3.取值操作和取址操作

取值操作符是*,取址操作符是&。

如果对着指针变量执行取值操作,比如*pstr,得到的将是pstr指针指向的内存地址保存的值;而对变量执行取址操作,比如&i,得到的将是变量i的地址。

下面通过一个实例来介绍两者的区别:


#include <iostream>



using namespace std;



int main(){

int i=100;

int *pstr=&i;

cout<<"the value of i is:"<<i<<endl;

cout<<"the value of pstr is:"<<pstr<<endl;

cout<<"the value of *pstr is:"<<*pstr<<endl;

cout<<"the address of i is:"<<&i<<endl;

}



可以看到类似的输出:


the value of i is:100

the value of pstr is:009AF9E4

the value of *pstr is:100

the address of i is:009AF9E4

i的值是100;pstr的值是保存i的地址;*pstr对指针变量pstr进行取值操作,得到是pstr指针变量指向的内存地址保存的值;&i表示的是对变量i进行取址操作,得到的是变量i在内存中的保存地址。

4.指针的指针

指针的指针指的是对指针变量执行取址操作,得到的是变量的指针的地址。

例子如下:


int i=10;//声明变量i

int *pstr=&i;//获取变量i的地址初始化指针变量pstr

int **pstr1=&pstr;//获取指针变量pstr的值初始化指针的指针变量pstr1

5.指针和数组

最后

针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

  • Android前沿技术大纲

  • 全套体系化高级架构视频

资料领取:点赞+点击GitHub免费获取

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、混合式开发(ReactNative+Weex)全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。