[笔试面试] 对printf参数压栈和指针加减的理解

本文深入解析了C语言中指针运算、内存访问的基本原理,通过具体的代码示例,详细阐述了如何使用指针进行数据操作及内存管理。包括指针的加减运算、自增自减、指针间的相减、间接访问等关键概念,并通过执行结果分析加深理解。

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

先看面试题:

#include <stdio.h>

main()
{
        int arr[]={6,7,8,9,10};
        int *ptr = arr;

        *(ptr++)+=123;
        printf("*(ptr-1) = %d\n", *(ptr-1));
        printf("*ptr = %d\n", *ptr);
        printf("*ptr = %d, *(++ptr) = %d\n", *ptr,*(++ptr));
}

执行结果;

*(ptr-1) = 129
*ptr = 7
*ptr = 8, *(++ptr) = 8

分析:

可将*(ptr++)+=123分解为 *ptr = *ptr + 123;   ptr++;两句,此时ptr应该只想第二个元素7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值