返回目录:https://blog.youkuaiyun.com/chen1083376511/article/details/82723709
问题:
问:什么是指针?
答:指针是用来存储内存地址的变量,它指向单个对象的地址,除了void指针类型之外,指针的数据类型与所指向地址的变量数据类型须保持一致。不论指针指向的数据类型是哪一种,他本身永远是整型,保存的是地址。
分析:
int *ip;
const intt *ip2;
ip和ip2都是指针变量名,int表示该指针变量的类型是整型。*表示指针变量。
-------------------------------------------------------
问题:
问:如何初始化指针并对其赋值?
答:指针的初始化就是给指针赋初值,&符号可以用来获取对象的内存地址,并且赋值给指针变量。指针变量的初始化和赋值都可以通过运算符”=“来实现。
分析:
指针可以初始化为0(NULL),,没有初始化的指针指向是随机的,它可能导致随机修改了程序的值。
变量的数据类型和指针变量的数据类型要保持一致。所以以下代码是错误的:
int a=123;
long *p;
p=&a;
------------------------------------------------------------
问题:
问:是否可以确定指针指向一个对象?
答:指针用于指向对象,一个指针只指向一个对象的内存地址。
---------------------------------------------------------------
问题:
问:指针和迭代器主要的区别?
答:指针和迭代器都是提供其所指对象的间接访问。区别是:指针用于指向单个对象,而迭代器只用于访问容器内的元素。
------------------------------------------------------------
问题:
问:运用好指针有哪些优点?
答:
1.提高程序的编译效率和执行速度。
2.通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。
3.可以实现动态的存储分配。
4.便于表示各种数据结构,编写高质量的程序。
5.使表达式变得紧凑和简洁。
---------------------------------------------------------------------------
问题:
问:使用指针不恰当的会出现哪些问题?举些例子。
答:
1.访问数组和其他数据结构时越界。
2.自动变量消失后被引用。
3.堆上分配的内存释放后被引用。
4.内存分配之前解引用。
-------------------------------------------------------------
问题:
问:指针是一种特殊