IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 2021-09-30:小江自学c语言的第二天--指针 -> 正文阅读

[C++知识库]2021-09-30:小江自学c语言的第二天--指针

看了一些指针的博客资料,也没有弄懂,大概要多敲几次才会明白吧。

下面是我自己对指针的理解(代码没运行过)

小明要帮多个同学拿鞋子,如果一个个打开鞋柜确认,太耗时间。于是小明向同学索要鞋箱的号码,同学给了他纸条,纸条就是指针。
鞋箱可以是连续的,也可以是非连续的,有纸条,小明寻找鞋子的速度就快。(引用)
*p=&shoe
纸条箱子就是指针数组,指向纸条柜子的纸条就是二重指针
**pp=*p
假如两个同学的鞋子要交换鞋子,不用考虑其他的情况下,可以互换纸条,节省了拿鞋子,换鞋子的功夫。(交换)
*p1=&shoe1
*p2=&shoe2

*temp=*p1
*p1=*p2
*p2=*temp

下面是代码部分(能run)

因为太多printf就把它变成P了

#include <stdio.h>
#define P printf

如果指向的是整形变量

/指向整形变量
	int shoe=11;
	int* p;
	p = &shoe;//&shoe就是shoe的地址
	P("%d\n", *p);	// 11,p指向的变量
	P("%d\n", p);	// 指针本身的地址,随机。

要注意*p才是p指针指向的变量,输出p应该是输出p指针自身

直接用p=shoe是不被运行的,因为p是一个指针,只能给它地址,也就是&shoe

指向数组,代码如下

//指向数组
	int sc[2]{0,1};
	int *p2;
	p2 = sc;
	P("%d\n",*p2);	// 0,a[0]
	p2 = &sc[0];
	P("%d\n", *p2);// 0

上面说到指针只能接收地址,那么数组名sc也是一个地址,而且是数组第一个元素的地址。与sc[0]输出结果相同,但两者又有本质的不同,指向sc是指向整个数组,指向sc[0]是指向一个元素

指针与数组的关系

//指针与数组
	int v;
	v = sc[1];
	P("%d\n", v);
	v = *(sc + 1);
	P("%d\n", v);	//都等于1,sc[1]与*(sc+1)结果相同。数组名本身也是一个指针
	p2 = sc;
	P("%d\n", * (p2 + 1));//用*(p2+1)访问数组第二个元素

然后是指针本身的运算

int* p3 = &sc[1];
	P("%d\n",p2); //3865696
	p2++; //加上一个p2所指类型字节大小的地址,int即4字节
	P("%d\n",p2);//3865700差4,一个int字节
	P("%d\n", *p2); //1 ,a[1]
	p2--;
	P("%d\n", *p3 - *p2);//1,也就是a[2]-a[1],指针不能相加

注意指针不能相加,会指向未知的地址,没有意义。指针的加1,其实是增加一个所指向数据类型的字节,int整形的话,就是增加4个字节(指针本身也是4个字节)

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:38:20  更:2021-10-01 16:40:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:06:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码