C++小白:指针入门1

 1.指针的概念

指针就是地址,利用这个地址可以在电脑的内存中找到指定的数据

一个变量的地址称为该变量的“指针”

一个变量保存的是另一个变量的地址,称为“指针变量”

2.简单的一级指针的使用:

定义 :  类型  *变量名=&变量名;

            如:int  x = 10;

                   int  *p = &x; (或者写成:int*  p=&x;)

#include<iostream>
using namespace std;

//一级指针
int main() {
	int *p;
	int x = 5;
	p = &x;
	cout << "&x=" <<  &x << endl;
	cout << "p=" << p << endl;    //p为指针变量,p存放的是x的地址(&x:表示取x的地址)
	cout << "*p=" << *p << endl;  //*p相当于x
	cout << "&*p=" << &*p << endl; // &*p==&(*p)== &x  &h和*操作符的优先级相同,且从右至左执行

	return 0;
}

 3.野指针 

野指针:我们知道指针是会指向一个内存单元的,而野指针是指“这个指针所指向的地址使我们不可知的,是随机的”。野指针是非常危险的,也是非常严重的,我们应该避免野指针。

     1、定义一个指针变量时没有初始化
     int *p;
   //都知道我们在定义一个非指针的变量时如果没有初始化,
   //则这个变量的值是随机的(如:int a;)
   //指针变量同样如此,指针变量的随机值的意思就是说他指向的位置是随机的

   2、动态开辟的内存空间在使用完后调用free函数释放掉这段内存空间,却没有将对应的指针职位NULL。虽然开辟的空间被释放掉但指针依旧存在。
  int func()
  {
     int *p = malloc(sizeof(int));
     free(p);//没有将p值为NULL的操作
  }

  3、对指针的操作已经超出了指针变量的作用域
 
//比如通常我们实现了一个函数,该函数里创建了一个指针变量,而函数结束时最终返回这个指针变量,但是函数调用结束后,
 该函数的函数栈帧就会被销毁,所以返回的这个指针变量所指向的空间已经被释放了因此这个指针变量指向的空间就变成了随机的。

参考:https://blog.csdn.net/qq_40927789/article/details/8068672

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值