首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让局部变量名与c中的参数名相同是不好的做法吗?

让局部变量名与C中的参数名相同是不好的做法。这是因为在C语言中,函数的参数和局部变量都存储在同一个命名空间中,如果它们的名称相同,会导致变量名的冲突和混淆,可能会引发一些意想不到的错误。

当局部变量名与函数参数名相同时,编译器会优先使用局部变量,而不是参数。这可能会导致在函数中无法正确访问到参数的值,从而产生错误的结果。

为了避免这种混淆,建议在编写代码时遵循一些命名规范,例如给参数名加上前缀或者使用不同的命名风格,以区分参数和局部变量。这样可以提高代码的可读性和可维护性,减少潜在的错误。

总结起来,让局部变量名与C中的参数名相同是不好的做法,应该避免这种情况发生。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python 变量进阶(理解)

变量引用 变量 和 数据 都是保存在 内存 在 Python 函数 参数传递 以及 返回值 都是靠 引用 传递 1.1 引用概念 在 Python 变量 和 数据 是分开存储...2 个贴在数字 2 上标签 1.3 函数参数和返回值传递 在 Python ,函数 实参/返回值 都是是靠 引用 来传递来 def test(num): print("-" *..." + "-" * 50) # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已 num = 100 print(num) def demo2():...print("demo2" + "-" * 50) print(num) demo1() demo2() print("over") 注意:只是在函数内部定义了一个局部变量而已,只是变量名相同...,不会修改到全局变量,只是变量名相同而已 num = 100 print(num) def demo2(): print("demo2" + "-" * 50) print

75131
  • PYTHON知识点学习-函数()

    5.2栈帧局部变量关系 函数-变量作用域 def getPoint(): x = 10 y = 20 return x, y x, y = getPoint() print...(x,y) 1.1区分全局变量和局部变量 思考:上面的函数里面的x y 和 函数外面的 x y 是同一组变量?...--->函数内部变量名,只能在函数内部生效,出了函数,就无效了!! 函数内部和函数外部是可以使用同名变量.虽然变量名相同,但是是不同变量!!...,能够看到函数之间 "调用栈" 调用栈里面描述了当前这个代码函数之间调用关系是啥~ ~ 每一层这个调用关系就称为"函数栈帧",每个函数局部变量就在这个栈帧中体现~ 5.2栈帧局部变量关系...从上面可以看出局部变量和栈帧就像是同生共死好朋友一样~ 每一层栈帧,你选中了之后,都能看到里面的局部变量 每个函数局部变量就保存在对应得栈帧~ ~ 调用函数,则生成对应栈帧.

    13710

    java基础学习_面向对象(下)01_day08总结

    B:提高了代码维护性。 C:类之间产生了一个关系,是多态前提。       类类产生了关系,其实也是继承一个弊端:         类耦合性增强了。...--------------------------------------- (8)Java继承成员关系:     A:成员变量       a:子类成员变量名称和父类成员变量名称不一样时...b:子类成员变量名称和父类成员变量名称一样时,这个怎么访问呢?         在子类方法访问一个成员变量查找顺序: 1.在子类方法局部范围找,有就使用。...方法重载:本类中出现方法名一样,参数列表不同,返回值类型无关方法。 方法重写使用特点:       如果子类和父类方法名不同,就调用各自对应方法。       ...(包含方法名、参数列表和返回值类型都一样)  方法重载:         同一个类,出现方法名相同,参数列表不同,返回值类型无关现象。

    33520

    方法方法重载

    方法方法重载 定义带参数方法 语法 返回类型 () {       //方法主体 } ​ 举例 public int add(int a,int...b){ return a+b; } 调用带参数方法 语法 对象名.方法名(参数1, 参数2,……,参数n) 举例 xxx.add(1,2); 构造方法 特点 无返回值类型 方法名名相同...可以指定参数 作用 对象初始化 系统默认提供无参构造方法 重载 方法名相参数项不同 返回值、访问修饰符无关 同一个类 一旦用了方法重载,那么系统不再提供无参构造方法 this关键字 用法 调动属性...调用方法 调用构造方法 成员变量局部变量 变量声明位置决定变量作用域 变量作用域确定可在程序变量名访问该变量区域 局部变量作用域仅限于定义它方法 成员变量作用域在整个类内部都是可见...Java会给成员变量一个初始值 Java不会给局部变量赋予初始值 在同一个方法,不允许有同名局部变量 在不同方法,可以有同名局部变量 在同一个类,成员变量和局部变量同名时,局部变量具有更高优先级

    1.2K10

    怎样变量命名,才显得有文化?

    为什么需要命名规范 从本质上来说,变量名只是个标识符,用于表示内存一个地址或者数据。按理说只要符合编程语言语法规则,无论怎么命名都不会影响代码执行结果。那为什么我们还要强调命名规范呢?...计算机只负责编译执行,才不管你代码写得好不好看,有没有逻辑问题,扩展性如何等等。从这个角度说,良好命名规范可以提高代码质量,减少软件缺陷。 良好命名具有自文档作用,看变量名就知道代表什么含义。...否则就会出现下面这种尴尬局面: ? 什么是好命名 在生活,漂亮的人名人赏心悦目,还有着丰富含义,人印象深刻。虽然说给变量命名不需要这么高文学水准,但是也要具备一些基本要素。...比如在for循环里用i变量,已经约定俗成了,属于作用域范围很小局部变量,用完即丢。这种情况可以使用简洁命名。 有具体含义 除了要有意义,还需要含义尽量具体。...词汇量不够,不是有有道词典?再不济用百度也行吧。总之,英语不好不能拿来当借口哟。

    99510

    C#编码规范2 C#编码规范

    6> 变量命名   l 按照使用范围来分,我们代码变量基本上有以下几种类型,类公有变量;类私有变量(受保护同公有);方法参数变量;方法内部使用局部变量。    ...b) 方法内局部变量和方法第一条语句之间。     c) 块注释(参见"5.1.1")或单行注释(参见"5.1.2")之前。     d) 一个方法内两个逻辑段之间,用以提高可读性。   ...错误做法: ? 5.4 其它   1> 一个方法只完成一个任务。不要把多个任务组合到一个方法,即使那些任务非常小。   ...2> 使用C#特有类型,而不是System命名空间中定义别名类型。   3> 别在程序中使用固定数值,用常量代替。   4> 避免使用很多成员变量。声明局部变量,并传递给方法。...例: 正确DataColumn[“Name”]      不好 DataColumn[0]   11> 在一个类,字段定义全部统一放在class头部、所有方法或属性前面。

    2.6K91

    【笔记】《C++Primer》—— 第6章:函数

    如前所述,名字有生命周期,函数局部名字会隐藏外部名字,函数执行结束那些变量就会销毁 随着函数执行自动创建和销毁称为自动对象。...若将局部变量用static创建,则得到局部静态对象,此时它只能在此作用域中使用但生命周期直到程序终结 函数声明也叫做函数原型,含有函数声明头文件应被包含到定义函数源文件 6.2 参数传递 函数形参可以是引用类型...,但不好操作,普通形参不能传入常量实参,但更好操作 当函数不会修改传入参数时,定义为常量引用是更好习惯 函数参数可以写为数组形式, 写为指针形式是等价 数组有三种常见传参方法:用某个不会出现元素标定数组尾...返回数组指针时,要注意保持好正确写法:先看括号,从括号内往括号外看,然后数组括号对应是前面紧接着数组名,数组具体元素类型要看数组前面的类型名,用括号来使星号和引用号类型名相隔离(下面的例子若去掉括号会变为拥有十个...当然也可以使用之前提到decltype来简写各种类型 6.4 函数重载 函数名相同而形参不同一系列函数称为重载函数,但形参不同是有一系列条件 首先是形参不同指的是类型不同,形参名字是无意义

    70730

    Python函数 & 变量

    1.掌握函数定义调用;2.掌握函数实参和形参使用方法;3.了解函数返回值;4.掌握缺省参数使用方法;1....定义函数时候括号里面的参数 。形参必须是变量;●实参 。调用函数时候,括号里面的参数 。实参可以是常量 。实参可以是变量 。实参可以是表达式●定义函数时候形参有值? 。...:在其他开发语言中,大多不推荐使用全局变量-可变范围太大, 导致程序不好维护!...(): print(num1)my_func1()num1 = 10my_func2()5.6、全局变量局部变量重名●如果在函数内部定义一个变量名字和全局变量重名,那么在这个函数内部只能使用局部变量...(num1) # 打印是全局变量num1值注意:只是在函数内部定义了一个局部变量而已,只是变量名相同在函数内部不能直接修改全局变量值。

    20010

    阿里Java编程规约【一】命名风格

    【强制】所有编程相关命名严禁使用拼音英文混合方式,更不允许直接使用中文方式。 说明:正确英文拼写和语法可以阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。...【强制】类型括号紧挨相连来定义数组。 正例:定义整形数组 int[] arrayDemo。 反例:在 main 参数,使用 String args[] 来定义。 9....说明:子类、父类成员变量名相同,即使是 public 也是能够通过编译,而局部变量在同一方法内不同代码块同名 也是合法,但是要避免使用。...对于非 setter / getter 参数名称也要避免与成员变量名称相同。...; // ... } for (int i = 0; i < 10; i++) { // 在同一方法体,不允许与其它代码块 money 命名相

    63020

    Java学习笔记_零基础系列(九)Java方法

    方法(英语单词:method)是可以完成某个特定功能并且可以被重复利用代码片段。 方法出现,代码具有了很强复用性。 在C语言中,方法被称为“函数”。 在java不叫函数,叫做方法。...每个方法执行时所需要内存空间(局部变量)。 6、关于数据结构栈数据结构 原则: 后进先出 先进后出 栈数据结构相关术语: 栈帧:永远指向栈顶部元素(栈顶元素具有活跃权。)...有一本书:数据结构算法。 数据结构和算法选择很重要,选择对了程序执行效率大大提升。 可以很好优化程序。 7、分析程序运行过程内存变化 方法只定义不调用是不会执行。...条件1:在同一个类当中 条件2:方法名相同 条件3:形式参数列表不同(类型、个数、顺序) 注意: 方法重载和返回值类型无关,和修饰符列表无关。 3、方法重载优点?...(运行效率不会低) 后果1:代码可读性差。 后果2:可读性差也可以会牵连到代码开发效率。 其实计算机内存不差这个。。。。。。 注意:在编码过程,有一些变量名是必须要定义

    38620

    java基础学习_面向对象(上)02_day07总结

    局部变量:在方法定义或者方法声明上(即形参)。 (2)在内存位置不同:     成员变量:在堆。     局部变量:在栈。...(5)注意事项:     1.局部变量名称可以和成员变量名称一样,但是在方法中使用该变量时候,采用是就近原则(即先找小范围,再找大范围)。     ...(2)格式: A:方法名和类名相同。 B:没有返回值类型,连void都不能有。 C:没有具体返回值。  思考题:构造方法可不可以有return语句呢?     可以。...C:构造方法也是方法,也可以方法重载。 (4)给成员变量赋值方式有两种:(只写一种即可) 方式1:setXxx(参数类型 成员变量名)成员方法(实际开发时用方式1,该方式更灵活。)...= a + b; 18 return c; 19 } 20 } 21 */ 22 //方式1满足了我们要求,但是不好

    31910

    Python学习入门基础 — 第四章 列表、元组、字典、字符串变量使用、变量进阶

    2.3 应用场景 尽管可以使用 for in 遍历 元组 但是在开发,更多应用场景是: 函数 参数 和 返回值,一个函数可以接收 任意多个参数,或者 一次返回多个数据 有关 函数参数 和..." + "-" * 50) # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已 num = 100 print(num) def demo2():...print("demo2" + "-" * 50) print(num) demo1() demo2() print("over") 注意:只是在函数内部定义了一个局部变量而已,只是变量名相同...,不会修改到全局变量,只是变量名相同而已 num = 100 print(num) def demo2(): print("demo2" + "-" * 50) print...4) 全局变量命名建议 为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求,例如: 全局变量名前应该增加 g_ 或者 gl_ 前缀 创作不易,白嫖不好,各位支持和认可,

    2.1K20

    Go语言中常见100问题-#14 Ignoring package name collisions

    忽视包名冲突 当变量名名相同时会发生包冲突,会阻止包被重用。下面来看一个Redis客户端库具体例子。...package redis type Client struct { ... } func NewClient() *Client { ... } func (c *Client) Get(...redis := redis.NewClient() v, err := redis.Get("foo") 上面这个客户端调用程序变量名和包名都是redis,虽然语法上没有任何问题,但是应该避免这种做法...导入来访问没有包限定符所有公共元素。然而,这种方法往往会增加混淆,在大多数情况下应该避免使用。」 还要注意,我们应该避免变量名和内置函数名之间名称相同冲突。...例如,下面这个拷贝操作, 函数 copyFile 返回结果赋值给了变量 copy, 内置函数 copy 冲突了,导致内置copy函数无法访问。我们应该防止变量名冲突以避免歧义。

    29330

    阿里Java编码手册实战详解-命名规范篇

    【强制】代码命名严禁使用拼音英文混合方式,更不允许直接使用中文方式。 说明:正确英文拼写和语法可以阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。...【强制】类型括号紧挨相连来表示数组。 正例:定义整形数组 int[] arrayDemo; 反例:在 main 参数,使用 String args[]来定义。 8....说明:子类、父类成员变量名相同,即使是 public 类型变量也是能够通过编译,而局部变量在同一方法 内不同代码块同名也是合法,但是要避免使用。...对于非 setter/getter 参数名称也要避免与成员 变量名称相同。.../ 不允许父类成员变量名称相同 public int age; } 11.

    1.1K00

    阿里Java编码手册实战详解-命名规范篇

    【强制】代码命名严禁使用拼音英文混合方式,更不允许直接使用中文方式。 说明:正确英文拼写和语法可以阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。...【强制】类型括号紧挨相连来表示数组。 正例:定义整形数组 int[] arrayDemo; 反例:在 main 参数,使用 String args[]来定义。 8....说明:子类、父类成员变量名相同,即使是 public 类型变量也是能够通过编译,而局部变量在同一方法 内不同代码块同名也是合法,但是要避免使用。...对于非 setter/getter 参数名称也要避免与成员 变量名称相同。.../ 不允许父类成员变量名称相同 public int age; } 11.

    62741

    【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数

    函数 c') b() c() """ 运行结果 函数 c 函数 b 函数 a """ 调用 c 时候,会打印 c,也会调用 b 调用 b 时候,会打印 b,也会调用 a...图片 每一层栈帧,在你选中之后,都能看到里面的局部变量,每个函数局部变量就保存在对应栈帧之中 调用函数,则生成对应栈帧;函数结束,则对应栈帧消亡(里面的局部变量也就没了) 如果将每个函数里面的变量名都改为一样...,形参相当于函数局部变量,而局部变量是在函数自己栈帧上 虽然几个函数局部变量名相同,但是他们是在不同栈帧,是在不同内存空间中,也就是不同变量 另一方面,看起来是同一个函数,但是这里多次调用...”问题非常方便(二叉树) 参数默认值 Python 函数,可以给形参指定默认值 带有默认值参数,可以在调用时候不传参 在函数内部加上打印信息,方便我们进行调试。...但也可以手动传参,不使用默认值 通过这样默认值,就可以函数设计更灵活 但要求带有默认值形参,得在形参列表后面,而不能在前面或者中间,带有多个默认参数形参,就都得放在后面 但像默认值这样语法

    9510

    3分钟短文:Laravel路由加模型等于?

    代码时间 还是最早我们讲那种方式,在路由地址上通过位置参数绑定,我们可以获取到用户输入数据。只不过,为了模型文件对应起来,可以直接在路由处理方法闭包内调用模型方法,并组装数据返回。...上面的路由也是很多地方都在用通用做法,可是程序员总是懒惰,能少写一行就少写一行。laravel为我们准备了更多。 隐式绑定 首先来看一下默认隐式路由模型绑定。 什么意思呢?...就是路由内默认使用某个变量传入参数,这个键名执行方法变量名相同,那么系统就会根据传入参数,在执行方法内使用依赖注入方式实例化一个模型,而实例化方法,恰恰就是传入参数查询结果集。... {conference} 跟执行方法变量名 $conference 撞名了,这个时候系统就会想了,这是要用隐式绑定模式啊。...写在最后 本文讲了一个再实际工程中用甚至不是太多一个功能——路由模型绑定,却能为大家打开思路提供很多帮助。 诸位还记得之前章节我们介绍使用 slug 方式查询数据集?那正是典型路由模型绑定。

    49620
    领券