17.c/c++程序员面试宝典-指针概述

本文是C/C++程序员面试宝典的一部分,主要介绍了指针的基础知识,包括指针的概念、类型、初始化和赋值。指针是C++中强大的工具,能够直接操作内存,但也需要注意其潜在的风险。文章通过多个面试题分析了指针如何用于数组、操作内存、以及const指针和指针数组的区别。
摘要由CSDN通过智能技术生成

17.c/c++程序员面试宝典-指针概述

在c++中,很多程序员都痴迷于指针的运用,很多公司在招聘较高级职位的时候,也会考察到指针的相关知识,对指针的运用能看出程序员编写程序的严谨性。指针是用来控制对象的内存地址,它功能非常强大,可以直接访问和操作系统内存,合理地运用指针也会让程序的性能得到很好的优化。


在c++中,语言可以在运行时获得变量的地址,并且具有操作地址的能力。这种功能在其他的语言中可能都不如c++中如此重要,被用来操作变量地址的特殊类型的变量就是指针变量。指针可以用于数组,或者作为函数的参数,用来访问内存和对内存的操作。由于指针的作用,使得c++的功能非常强大,它可以使程序变得非常高效,但是指针使用起来又比较危险,使用不当会导致程序出现比较严重的问题。



面试题83  什么是指针***


分析:程序中的所有变量和常量都存在一个内存地址中。这个内存地址表示变量或者常量在内存中存储的位置,同样,函数也有对应的内存地址。内存地址的不同会导致程序执行时有所不同,指针就是用来存储内存地址的变量。


编程者所知道的所有基本数据类型,例如,int,float,double等,每一种基本数据类型都有相应的指针类型,编程者可以建立对应类型的指针来处理基本数据类型。


“*”在运算符中是表示乘法,它也被用来定义指针。指针变量的定义语句,由数据类型后跟星号,再跟指针变量名组成。定义指针的示例代码如下:

int *ip;

const int *ip2;


上面所示ip和ip2都是指针变量名,int表示该指针变量的类型是整型,*表示是指针变量。指向整型数的指针是包含该整型数地址的变量或常量。另外c++还提供了一种特殊的指针类型void*,它可以保存任何类型对象的地址。示例代码如下:

double obj=3.14;

double *pd=&obj;   //double类型指针

void *pv=&obj;   //void类型指针,在这里保存了double类型指针地址

pv=pd;


【答案】指针是用来存储内存地址的变量,它指向单个对象的地址,除了void指针类型以外,指针的数据类型与所指向地址的变量数据类型须保持一致。



面试题84  如何初始化指针并对其赋值****


分析:建立指针包括定义指针变量和给指针变量赋初值,第一次给指针变量赋值就是指针的初始化。用&符号可以获取变量的地址,指针变量用来存储变量的地址,基本的指针变量初始化示例代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值