指针的 运算 | 为什么指针不能 加/乘/除 指针?|NULL有什么用?|void* 能干什么?指针 详解

本文详细讲解了C语言中指针的运算,包括指针加减常量、指针之间的减法以及NULL和void*的用途。指针可以加减常数,相减得到它们间的单元格数,但不能进行乘除运算。NULL作为0地址,用于错误指示和防止野指针。void*指针可以指向任何类型,但不指定具体类型。
摘要由CSDN通过智能技术生成

指针的运算 详解 [C语言必知必会]

指针的运算

指针加减 常量

请看下面的程序,猜测一下结果:

int main() {
   

	int arr[10] = {
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int* a = &arr;

	printf("a     = %p\n", a);
	printf("a + 1 = %p\n", a + 1);
	printf("a - 1 = %p\n", a - 1);

}

运行结果:

a     = 00AFF82C
a + 1 = 00AFF830
a - 1 = 00AFF828

可以看到, a 与 a + 1 和 a - 1 都差了四个字节

指针加减常量 加减的大小为 sizeof(类型) * 常量

再试试 char 类型?

int main() {
   

	char arr[10] = {
    ' 1', '2', '3', '4', '5', '6', '7', '8'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值