当前位置:首页 > C++知识 > 正文内容

指针(一):基础用法

亿万年的星光4年前 (2021-08-08)C++知识2708

1.定义

什么是指针,简单来说:“指针就是地址”。


2.指针变量的定义

指针变量定义形式:  类型说明符  *变量名

其中,*号表示指针变量。变量名即为定义的指针变量名,类型说明符表示该指针变量所指向的变量的数据类型。

普通变量:int a=5;

解释:定义了变量a,是int型的,值为5。内存中有一块内存空间是放a的值。对a的存取操作就是直接到这个内存空间存取。内存空间的位置叫地址,存放5的地址可以用取地址操作。用“&”符号运算得到。即&a;

指针变量:int *p=NULL;

解释:定义了一个指针变量p,p指向一个内存空间,里面存放的是一个内存地址。现在赋值为null(其实就是0,表示特殊的空地址)

比较通俗一点的解释,对于普通变量来说,a是一个int型变量,a的值的5。p是一个int *型变量,p的值是null。

3.指针变量的赋值与操作


#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int a=3;
	int *p=NULL;
	cout<<"a的值"<<a<<endl;  //3
	cout<<"p的值"<<p<<endl;  //0
	cout<<"*p的值"<<*p<<endl; //程序报错 
	return 0;
}


将指针变量指向一个地址后:

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int a=3;
	int *p=NULL;
	p=&a;
	cout<<"a的值"<<a<<endl;  //3
	cout<<"p的值"<<p<<endl;  //0x22fe34 
	cout<<"*p的值"<<*p<<endl; //3
	return 0;
}

可以看到p这个变量(int *类型)存储的是地址变量,不是普通的数值变量,所以p本身也是一个变量只不过存储的是地址而已。

将指针变量赋值后:

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int a=3;
	int *p=&a;
	cout<<"a的值"<<a<<endl;  //3
	cout<<"p的值"<<p<<endl;  //0x22fe34 
	cout<<"*p的值"<<*p<<endl; //3
	*p=6;
	cout<<"a的值"<<a<<endl;  //6
	cout<<"p的值"<<p<<endl;  //0x22fe34 
	cout<<"*p的值"<<*p<<endl; //6
	return 0;
}

将指针变量指向一个新地址后:

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int a=3;
	int *p=NULL;
	p=&a;
	cout<<"a的值"<<a<<endl;  //3
	cout<<"p的值"<<p<<endl;  //0x22fe34 
	cout<<"*p的值"<<*p<<endl; //3
	int b=10;
   	p=&b;
	cout<<"a的值"<<a<<endl;  //3
	cout<<"b的值"<<b<<endl; //10 
	cout<<"p的值"<<p<<endl;  //0x22fe00
	cout<<"*p的值"<<*p<<endl; //10
	return 0;
}



扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

数组的不确定长度输入

0.前言我们在学习数组的时候一般都会告诉你数组的长度,然后for循环去遍历。但是有一类问题是没有n的,也就是没有告诉长度的。1.方法第一种:(数组)#include<iostream>...

深搜剪枝技巧

一、什么是剪枝     首先应当明确的是,“剪枝”的含义是什么。我们知道,搜索的进程可以看作是从树根出发,遍历一棵倒置的树——搜索树的过程。而所谓剪枝,顾名思义...

【题解】士兵训练

【题目描述】某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,...

【题解】均分纸牌

【题目描述】有n堆纸牌,编号分别为 1,2,…, n。每堆上有若干张,但纸牌总数必为n的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1的堆上取的纸牌,只能移到编号为 2 的堆上;在...

【数论】二项式定理

【数论】二项式定理

一、基本概念上面这个式子就叫做二项式定理,又称牛顿二项式定理,该定理给出两个数之和的整数次幂诸如展开为类似项之和的恒等式。二项式定理可以推广到任意实数次幂,即广义二项式定理。 初中高中阶段比...

【入门篇】C++ 中变量的简单使用

【入门篇】C++ 中变量的简单使用

1.什么是变量”变量“通俗来讲就是能变的量。在程序设计中,变量是一个个不同类型的盒子,当盒子里装了苹果时,盒子就代表苹果,当然,我们需要给一个个盒子起不同的名字。像下面的图片一样,一个盒子,给他取一个...