指针模块分析-创新互联
指针指的是内存地址,是编程语言中的一个对象。定义:例如int *p;
在 C语言或者C++语言中,指针一般都被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量,数组,函数等。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”,意思是通过它能找到以它为地址的内存单元。
指针的赋值:例如p=&a; " 其中& 是取地址运算符,用于获取变量地址。"
指针访问变量:
#include
int main()
{
int a;
int *p;
p=&a;
a=76;
printf("a=%d\n",a);
printf("*p=%d\n",*p);
return 0;
}
运行结果
"* 是取值运算符,用于访问指针变量指向的数据。"
空指针:值为NULL的指针变量叫做空指针,NULL一般作为一种错误标志,当一个函数的返回值是指针类型时,可以使用NULL作为函数执行出错的返回结果。使用来历不明的指针前先做判断:if(NULL == p) if(!p)
野指针:指针指向位置不明确,野指针比空指针的危害更严重,因为它无法判断出来,可能是隐藏性错误,短时间不暴露。所有的野指针都是程序员自己不妥的操作制造出来的。
如何避免产生野指针:
1、定义指针变量时一定要初始化 int *p;(指针没有初始化)
int *p = NULL;//初始化
2、函数不要返回栈内存(函数内局部变量)的地址
3、指针指向的内存被释放后,指针变量要及时置空NULL
const:当我们为了提高传递参数效率而使用指针作为函数参数时 ,传递参数效率提高了,但是存在被修改的风险,可以使用const保护指针所指向的内存。
指针数组:由指针变量组成的数组,它的成员都是类型相同的指针变量。
类型 * arr[长度];例int * arr[10];
数组指针:专门指向数组的指针。
类型(* arrp)(长度);例int (*arrp)[10];
特殊指针:数组名也是一种特殊的指针。指针是变量是拥有自己的存储空间,它与它所指向的内存是指向关系,当指针变量指向数组首地址时,指针可以当作数组名使用,数组名也可以当作指针使用。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:指针模块分析-创新互联
转载来于:http://myzitong.com/article/dpjddj.html