前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入了解指针(二)

深入了解指针(二)

作者头像
用户11290664
发布2024-09-25 13:30:04
690
发布2024-09-25 13:30:04
举报
文章被收录于专栏:学习

终于到第二篇指针文章了!!

一数组名的理解

我们来定义指针变量p1和p2来把arr和arr[0]的地址打印出来发现都一样。

在进行指针的加法,发现跳过的是住在组中一个元素的字节。

由此可以推断出数组名就是数组首元素的地址。

但还是有两个例外 1.sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩, 单位是字节 2.&数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素 的地址是有区别的) 除此之外,任何地⽅使⽤数组名,数组名都表⽰⾸元素的地址。

二⼀维数组传参的本质

此处形参可以写成数组arr[]的形式,等于*arr。根据一中所讲。如果实参传过去的是整个数组,那么sizeof(arr)就是40个字节,如果是数组首元素的地址就是一个指针的变量。所以在函数内部是不能得到数组的个数。 应该在主函数计算出来,再传给函数。

三.⼆级指针

指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪⾥? 这就是 ⼆级指针 。

代码语言:javascript
复制
#include<stdio.h>

int main()
{
	int a = 0;
	int* pa = &a;
	int** ppa = &pa;

	return 0;
}

四指针数组

指针数组是指针还是数组? 我们类⽐⼀下,整型数组,是存放整型的数组,字符数组是存放字符的数组。 那指针数组呢?是存放指针的数组 指针数组的每个元素都是⽤来存放地址(指针)的。 如下图:

五指针数组模拟⼆维数

上述的代码模拟出⼆维数组的效果,实际上并⾮完全是⼆维数组,因为每⼀⾏并⾮是连续的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档