指针

[复制链接]
发表于 2023-12-31 10:35:21 | 显示全部楼层 |阅读模式
指针
1.  取地址运算符和取值运算符:
Ÿ  取地址运算符“&”:返回变量所在的地址。一般用于变量。(而数组名本身就是指针,无需“&”)
Ÿ  取值运算符“*”:返回地址对应的值,或用于改变指针所指内存空间的值。只能用于指针。
2.  指针的意义:保存另一个变量的内存地址。
3.  定义指针:int*p;
定义多个指针时,每个字母的前面都要有“*”。
注意,如果p没有被初始化,它就会指向一个未知的内存空间,而错误地操作内存会导致程序崩溃!
4.  指针使用实例:
  
int a  = 0, b = 1; int c[] = {1,2,3,4,5,6,7,8,9,10};
  
int  *p;      // 定义一个指针  p=&a;       // 让p指向a  (*p)=3;      // 相当于a=3  
  
(*p)=b;      // 相当于a=b,此时a等于1  
  
//  p=b;      // 非法操作,左边是int  *,右边是int,类型不匹配。
  
p=&b;       // 让p指向b,从此p和a没关系了  p=c+6;       // 让p指向c[6],p和b又没关系了  cout<<*p;      // 输出p指向的变量的值,即c[6]  p++;       // 现在p指向了c[7];  p=NULL;      // 表示p没有指向任何变量  cout<<*p;      // 由于NULL(0)是一段无意义的地址,所以程序极有可能崩溃。
  
为了不在竞赛中把自己搞晕,请回避指针,对其敬而远之。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表