码农知识堂 - 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是一个指向某数组的起始元素的指针,该数组的元素为字符指针类型。因为这两种写法是等价的,所以读者可以任选一种最能清楚反映自己意图的写法。 

  • 相关阅读:
    【Python】《Python编程:从入门到实践 (第2版) 》笔记-Chapter11-测试代码
    友情提示:lazarus的tsortgrid.autofillcolumns存在BUG
    【FNN回归预测】基于matlab粒子群优化前馈神经网络婚姻和离婚数据回归预测【含Matlab源码 2069期】
    [附源码]JAVA毕业设计健康生活网站(系统+LW)
    蓝桥杯python组--基础训练---求输入的第n个,斐波那契数
    学习nginx的一点记录
    数据结构之堆
    嵌入式学习笔记(42)SD卡的编程接口
    Go代码格式化——gofmt的使用
    Spring 源码(4)在Spring配置文件中自定义标签如何实现?
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/125876242
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号