当前位置: 首页 > news >正文

深入理解指针(4)

1.二级指针

如何理解呢?

1.pp的类型是int * * ——二级指针类型

2.p指向a,a的类型是int

3.int * * pp 其中 int * 在说明 pp 是指向 p 的类型 int * ,第二个 * 说明 pp 是指针变量

4.p + 1 跳过 4 个字节 , pp + 1 跳过 4 或者 8 个字节(要看对应的指针变量是多少)

由图可见,打印的是一样的

2.指针数组

存放指针的数组

int * arr[]

char * []

double * []

指针数组的每一个元素是地址,又可以指向一块区域

3.指针数组模拟二维数组

其中对于 arr[i][j] 编译器会当作*(*(arr+i)+j)  ——  指针运算!

其中所用到的代码如下:

#define _crt_secure_no_warnings 1
#include <stdio.h>
//void Print(int n)
//{
//	if (n > 9)
//	{
//		Print(n / 10);
//	}
//	printf("%d ", n % 10);
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	Print(n);
//	return 0;
//}//int main()
//{
//	int a = 10;
//	int* p = &a;
//	//p是一级指针
//	int** pp = &p;
//	//pp是二级指针
//	printf("%p\n", *pp);
//	printf("%p", &a);
//	return 0;
//}int main()
{int arr1[] = { 1,2,3,4,5 };int arr2[] = { 2,3,4,5,6 };int arr3[] = { 3,4,5,6,7 };int* arr[] = { arr1,arr2,arr3 };//打印数组int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 5; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

相关文章:

  • 机器学习的基本概念
  • 面向智能家居安全的异常行为识别与应急联动关键技术研究与系统实现(源码+论文+部署讲解等)
  • 第二章 信息技术发展(2.1 信息技术及其发展)
  • 高频面试题:如何保证数据库和es数据一致性
  • 11.ArkUI Tabs的介绍和使用
  • 跟我学C++中级篇——处理对象的复制
  • 【科研绘图系列】R语言绘制区间点图(dot plot)
  • Vue前端学习笔记
  • 什么是测试驱动开发(TDD)?
  • Safety Estimands与Efficacy Estimands的差异剖析
  • UR5 UR5e机器人URDF文件
  • ai聊天流式响应,阻塞式和流式响应 nginx遇到的坑
  • 科技与商业动态简报
  • 基于python代码的通过爬虫方式实现快手发布视频(2025年4月)
  • QT 连接数据库操作(15)
  • 无人机环境适应性与稳定性技术要点!
  • python 环状图 (pycirclize)
  • 【含文档+PPT+源码】基于微信小程序连锁药店商城
  • 基于 Python(selenium) 的百度新闻定向爬虫:根据输入的关键词在百度新闻上进行搜索,并爬取新闻详情页的内容
  • 【Linux内核设计与实现】第三章——进程管理02
  • 国家数据发展研究院在京正式揭牌
  • 获公示拟任省辖市委副书记的胡军,已赴南阳履新
  • 全品系停货?泸州老窖:暂未接到通知,常规调控手段
  • 商务部:美方应彻底取消所有对华单边关税措施
  • 2024年度全国十大考古新发现公布,武王墩一号墓等入选
  • 重庆一幼儿园回应招聘硕士幼教:统一标准,江北区学前教育岗的硬性要求