关于指针
- 1.看一个简单的程序,来接触下指针
- 二级目录
- 三级目录
本章节,我们重点分析C指针,首先我们从指针的概念谈起
💚💚💚
- 指针是一种保存变量地址的变量,并在C中频繁使用
- 在C语言标准中:最初出现指针,也有这样一段话
🧡指针类型(pointer type)可由:函数类型,对象类型或不完全的类型派生,派生指针类型的类型称为引用类型。
🧡指针类型,描述一个对象,该类对象的值提供对该引用类型实体的引用。由引用类型T 派生的指针类型有时称为 “指向T的指针”
从引用类型构造指针类型的过程称为“指针类型的派生”。
🧡 如由 int 类型派生的指针,称为 “指向int 类型的指针”。
下面,我们对指针的研究,主要从如下几个方面展开。
- 指针类型
- 指针类型变量
- 指针类型的值(即内存地址)
1.看一个简单的程序,来接触下指针
#include<iostream>
using namespace std;
int main()
{
int hoge = 5;
int piyo = 10;
int* hoge_p;
// 输出每个变量的地址
printf("&hoge...%p\n",&hoge);
printf("&piyo...%p\n",&piyo);
printf("&hoge_p...%p\n",&hoge_p);
// 将 hoge的内存地址赋值给 hoge_p
hoge_p = &hoge;
// 打印指针变量的值
printf("hoge_p...%p\n",hoge_p);
// 通过hoge_p输出 hoge的内容
printf("*hoge_p...%d\n",*hoge_p);
// 通过 hoge_p修改 hoge的内容
*hoge_p = 10;
printf("*hoge...%d\n",hoge);
return 0;
}
// 打印内容
&hoge...000000000061fe1c
&piyo...000000000061fe18
&hoge_p...000000000061fe10
hoge_p...000000000061fe1c
*hoge_p...5
*hoge...10
我们用一个图来说明下。
- 指针变量 hoge_p保存了另外一个变量 hoge地址,我们认为 “hoge_p” 指向 “hoge”。
- 对 hoge变量实施 &运算符得到 “hoge地址” 。 有时也称:"hoge的地址"的为 “指向 hoge的指针” (实际上这里的指针指:指针类型的值)
- 在 指针前面加上 * 可以表示指针指向的变量。(hoge_p 指向hoge), 所以 , *hoge_p 等同于 hoge , 那么一旦要求输出 *hoge_p 就会输出 hoge保存的值 。
🧡🧡🧡 要点
- 对变量使用 & 运算符,可以取得该变量的地址。 这个地址称为指向 该变量的指针。
- 指针变量 hoge_p 保存了指向其他变量的地址情况下(如保存 hoge 地址)可以说 “hoge_p 指向 hoge” 。
- 对指针变量运算 *运算符,就等同于它指向的变量。(如 hoge_p指向 hoge, *hoge_p就等同于 hoge)。