当前位置: 首页 > article >正文

C语言运算符——[]下标运算符

在 C 语言中,下标运算符 [] 用于访问数组或指针所指向的元素。其基本用法和特性如下:

基本用法

  1. 数组

    • 数组的下标从 0 开始。例如,arr[i] 访问数组 arr 中第 i 个元素。
    • 数组名代表数组首元素的地址,可以通过指针算术运算来理解下标运算的工作原理。
    int arr[5] = {10, 20, 30, 40, 50};
    printf("%d\n", arr[2]);  // 输出 30
    
  2. 指针

    • 指针使用下标运算符也能访问其指向的内存区域。ptr[i] 等价于 *(ptr + i),即访问指针 ptr 指向的第 i 个元素。
    int *ptr = arr;  // ptr 指向 arr 的首元素
    printf("%d\n", ptr[1]);  // 输出 20
    

计算方式

下标运算符的计算方式如下:

  • arr[i] 实际上等同于 *(arr + i),其中 arr 是数组名,表示首元素的地址。
  • 由于 C 中数组的元素是按类型大小存储的,所以下标运算会乘以每个元素的大小。例如,对于 int 类型的数组,arr[i] 计算为 *(arr + i * sizeof(int))

注意事项

  • 越界访问:访问数组或指针时,超出其定义的范围(如 arr[5] 访问 arr[10])会导致未定义行为。编译器不会强制检查下标是否越界。

  • 负下标:负下标是允许的,但通常会访问未定义的内存区域,也会导致未定义行为。

示例

#include <stdio.h>

int main() {
    int arr[5] = {10, 20, 30, 40, 50};

    // 使用下标访问数组
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }

    // 使用指针和下标访问
    int *ptr = arr;
    for (int i = 0; i < 5; i++) {
        printf("ptr[%d] = %d\n", i, ptr[i]);
    }

    return 0;
}

总结

  • 下标运算符在 C 语言中用于访问数组和指针的元素,计算方式基于类型大小。
  • 注意避免越界访问,以确保程序的稳定性和正确性。

http://www.kler.cn/news/365583.html

相关文章:

  • 通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问
  • 事务
  • mac nwjs程序签名公证(其他mac程序也一样适用)
  • C++20中头文件syncstream的使用
  • RAG技术
  • AI智能电销机器人有什么功能?语音机器人系统搭建
  • 【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)
  • 离offer更进一步的JVM详细面试题(含答案)
  • ⭐ Unity 序列帧播放脚本
  • NVIDIA发布Nemotron-70B-Instruct,超越GPT-4o和Claude 3.5的AI模型
  • 提示词高级阶段学习day3.2结构化 Prompt 的优势
  • 什么是3D展厅?有哪些应用场景?
  • 0160____declspec(noreturn)的用法
  • vue3中watch的用法以及使用场景以及与watchEffect的使用对比
  • 数据清洗-总结
  • 如何从iconfont中获取字体图标并应用到微信小程序中去?
  • 【个人记录】新电脑的配置截图和电源选项的修改
  • Python爬虫:从入门到精通
  • 微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件
  • 文案语音图片视频管理分析系统-视频矩阵
  • 使用frp0.61.0透传局域网的https服务到自有域名
  • AWS免费账号付费了能退吗
  • 英语语法笔记
  • 低代码(Low Code)是什么?解决了哪些问题?适合在什么业务场景中用?
  • 基于SSM+小程序的垃圾分类管理系统(垃圾2)
  • 青少年编程与数学 02-002 Sql Server 数据库应用 08课题、索引的操作