深度理解指针

本文深入探讨了C/C++中的指针特性,包括字符指针、数组指针与指针数组的区别、数组与指针作为参数传递的细节,以及函数指针的应用。通过对实例和概念的解析,帮助读者理解指针存储字符串首字母地址的本质,以及二维数组在传参时的特殊性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

引言

1. 字符指针

2. 数组指针和指针数组

2.1数指针和指针数组的区别与概念组

2.2 &数组名VS数组名

2.3函数指针的应用

3. 数组传参和指针传参

5. 函数指针

6. 函数指针数组

7. 指向函数指针数组的指针

8. 回调函数


引言

在之前的学习了中我们解到了指针的一些特点,在这篇文章中我们将深度刨析指针的特性

1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。
2. 指针的大小是固定的 4/8 个字节( 32 位平台 /64 位平台)。
3. 指针是有类型,指针的类型决定了指针的 +- 整数的步长,指针解引用操作的时候的权限。
4. 指针可以进行运算。

1. 字符指针

在指针的类型中我们知道char*为字符指针,这里我们举个例子说明一下

int main()
{
    char ch = 'w';
    char *pc = &ch;
    *pc = 'x';
    printf("%c",*pc);
    return 0; 
}

字符指针不仅仅可以指向一个指针,它还可以指向一个字符串,本质其实是字符指针指向了字符串的第一个字符的地址。

我们可以写一段代码来观察一下

int main()
{
	const char* pstr = "hello bit.";
	printf("%s\n", pstr);
	return 0;
}

仔细思考一下,这里是把一个字符串放到pstr指针变量里了吗?

不是,上面代码的意思是把一个常量字符串的首字符 h 的地址存放到指针变量 pstr 中,切记字符指针存储的是字符串首字母的地址

为了加深大家的理解我们可以分析一下下面的图片

 

这里 str3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

善始善终!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值