码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C陷阱与缺陷 第3章 语义“陷阱” 3.3 作为参数的数组声明


    作为参数的数组声明
    在C语言中,我们无法将一个数组作为函数参数直接传递。如果我们将数组名作为参数,那么数组名会立刻被转换为指向该数组第1个元素的指针。例如,下面的语句:
    char hello[] = "hello";
    hello是一个字符数组。如果将该数组作为参数传递给一个函数: 
    printf("%s\n", hello);
    实际上与该数组第1个元素的参数地址作为参数传递给函数的作用完全等效,即
    printf("%s\n", &hello[0]);
    因此,将数组作为函数参数毫无意义。所以,C语言中会自动地将作为参数的数组声明转换为相应的指针声明。也就是说,像这样的写法: 
    int strlen(char s[]) {
        /*具体内容*/ 
    }
    与下面的写法完全相同: 
    int strlen(char *s) {
        /*具体内容*/ 
    }

    extern char *hello;
    这个语句与下面的语句有着天壤之别: 
    extern char hello[];
    如果一个指针参数并不实际代表一个数组,即使从技术上而言是正确的,采用数组形式的记法也经常会起到误导作用。如果一个指针参数代表一个数组,情况有时如何呢?一个常见的例子就是函数main的第二个参数: 
    int main(int argc, char *argv[]) {
        /*具体内容*/ 
    }
    这种写法与下面的写法完全等价: 
    int main(int argc, char **argv) {
        /*具体内容*/ 
    }
    需要注意的是,前一种写法强调的重点在于argv是一个指向某数组的起始元素的指针,该数组的元素为字符指针类型。因为这两种写法是等价的,所以读者可以任选一种最能清楚反映自己意图的写法。 

  • 相关阅读:
    大话C# WPF基础入门和进阶,深入浅出解析系列课程 7 业务字段场景和判断为空实操案例
    java下载特定格式excel
    Android11 Wifi 加密类型详解
    uniapp开发小程序-pc端小程序下载文件
    技术支持面试 英文自我介绍
    Spring Cloud Gateway核心过滤器之请求限流详解
    【哈希槽算法】概念、对比、优点、举例理解_Redis07
    游戏后端服务器架构中的Redis应用:缓存游戏角色、排行榜:玩家分数、计分器:玩家击杀怪物的次数
    【无标题】好消息 突破:IM开源项目OpenIM采用wasm技术实现jssdk
    洛谷P4454 破解D-H协议
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/125876242
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号