MST

星途 面试题库

面试题:C语言指针变量内容的基础运算

假设有如下代码:int a = 10; int *p = &a; 执行p++; 后,p指向的地址发生了怎样的变化?请说明原因。
32.0万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 地址变化情况
    • p指向的地址增加了sizeof(int)个字节。
  2. 原因
    • 在C语言中,指针是一种保存内存地址的变量类型。当定义int *p = &a;时,p指向了变量a的地址。
    • 当执行p++;操作时,由于pint类型的指针,根据C语言指针运算规则,指针移动的步长是其所指向数据类型的大小。int类型在不同系统中通常是4字节(32位系统)或8字节(64位系统),这里p会按照int类型的大小增加地址值,即p指向的地址增加sizeof(int)个字节。