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

为什么函数接受int值,但传递变量时却什么也不做?

函数接受int值,但传递变量时却什么也不做的原因可能有以下几种情况:

  1. 函数定义中没有对传递的变量进行操作:函数可能被设计为只接受int值作为参数,但在函数体内部并没有对该参数进行任何操作或处理。这种情况下,函数只是简单地接受int值作为输入,但不对其进行任何处理。
  2. 函数内部可能存在其他逻辑错误:函数可能存在其他逻辑错误或代码缺陷,导致在传递变量时没有执行预期的操作。这可能是由于开发人员的疏忽或错误导致的,需要进一步检查函数的实现代码来确定具体原因。
  3. 函数可能是一个占位函数或未完全实现的函数:有时候,在开发过程中可能会创建一些占位函数或者未完全实现的函数。这些函数可能只是为了满足编译要求或者作为后续开发的基础,因此在传递变量时不会执行任何实际操作。

总之,函数接受int值但传递变量时不执行任何操作可能是由于函数定义、逻辑错误、占位函数等原因导致的。需要仔细检查函数的实现代码以确定具体原因,并进行相应的修复或完善。

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

相关·内容

Python 函数

函数 如果想定义一个什么不做的空函数,可以用 pass 语句: 12 def nop(): pass pass 语句什么不做,那有什么用?...参数 默认参数 Python的函数定义非常简单,灵活度非常大。...设置默认参数,要注意: 必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面); 多个默认参数 当有多个默认参数,如: 12345 def...原因解释如下: Python函数在定义的时候,默认参数L的就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义的...使用 *args 和 **kw 是 Python 的习惯写法,当然可以用其他参数名,最好使用习惯用法。 本文参考:廖雪峰 - Python 函数

1.4K40

C语言:动态内存管理

一、为什么要有动态内存开辟? 我们已知的内存开辟方式有什么呢??...此错误原因依照全局变量errno的来决定要输出的字符串。 在库函数中有个errno变量,每个errno对应着以字符串表示的错误类型。当你调用"某些"函数出错,该函数已经重新设置了errno的。...• 如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。 • 如果参数 ptr 是NULL指针,则函数什么事都不做。...,而是应该先将relloc函数的返回放在一个临时创建的指针变量里,并进行判断,如果该指针不为空,说明开辟成功了,这时再用ptr去接受比较稳妥。...方法2:利用返回返回开辟空间的起始地址,在函数栈帧销毁前利用寄存器将地址带回来,并用str接收 8.2 8.2 题目2 地址明明成功返回了,那为什么这个程序为什么打印出的是烫烫烫??

13410
  • 面试题系列第7篇:Java方法到底是传递还是引用传递

    change方法内修改了name,最终结果并没有修改?...传递与引用传递 首先来了解一下传递和引用传递的概念: 传递(pass by value)是指在调用函数将实际参数复制一份传递函数中,在函数内对参数进行修改,不会影响到实际参数。...引用传递(pass by reference)是指在调用函数将实际参数的地址直接传递函数内,在函数内对参数所进行的修改,将影响到实际参数。...(int b) { b = 2; } 首先在未调用方法变量a的内存分布如上图,当调用change方法int类型的a和b变量在内存中如下: ?...引用类型的传递 我们都知道数组属于引用类型,为了更加明确,我们这里新创建User对象来进行验证。

    96510

    终于弄明白了万能引用和右引用的区别

    ,无条件地将实参强制转换成右 std::forward不进行任何转发,仅仅在特定条件满足才执行同一个强制转换 两者在运行期间都无所作为,不会生成任何可执行代码,连一个字节都不会生成 */ //C...1,这个右无法传递给 std::string得移动构造函数,因为移动构造函数只能接受非常量 std::string型别得右引用作为形参 2,这个右可以传递给复制构造函数,因为指涉到常量得左引用允许绑定到一个常量右型别得形参...,本身而言,不会执行移动操作 2,std::foreard仅仅对绑定到右值得引用实施向右型别得强制转换,仅仅传递一个对象到另一个函数,保持原始对象得型别 3,运行期间,两者都不做任何操作 */ 条款24...short型别的实参 精确匹配优先于提升以后才能匹配,所以,形参型别为万能引用的版本才是被调用的版本 为什么short传给万能引用报错呢?...:把传递的形参引用型别替换成型别 //当你知道肯定需要赋值形参,考虑按传递对象 std::string nameFromIdx[4] = {"liyushu","lishushu","lxiaoshu

    1.8K10

    打开C嘎嘎的大门:你好,C嘎嘎!(2)

    ,这样才能实现两个数的交换,那么为什么我们直接传引用就可以交换呢?...:表达式必须是可修改的左为什么第一种函数是不可以通过的呢?...其实这个函数在传回来的时候,会先创建一个临时对象来接受函数,临时对象就是编译器需要一个空间暂存表达式的求值结果临时创建的一个未命名的对象,在C++规定中,临时对象具有常性,然后通过临时对象传递回主函数...,但是我们传递回了它的小名,说明此时传递的就是一个类似野指针的东西,小编称它为野引用,各位以后一定要小心这种情况。...本来小编在这里不太想多解释的,实际上,在底层中,引用也是需要开辟空间的,此时我们需要借助汇编代码进行查看,下面小编放上两张图各位就知道小编为什么说引用其实开辟空间了: 首先我们先不用管汇编代码是什么

    7110

    面试官:什么是宏定义和内联函数

    题目大意问的是在C语言和C++中分别用什么来处理一段短小、反复被调用的代码。我虽然回答出来了,其实我当时并不是特别了解内联函数,只是听过而已。今天就来稍微理一理。...宏定义相信大家都很清楚了,即使是初学者,知道宏定义有个好处是可以批量的替换一些变量啊或者一小段代码,提高程序的移植性。但是内联函数可能不是大家都知道。...为什么要引入内联函数呢?主要是为了消除函数调用时的系统开销,以提高运行速度。...我们知道,在调用函数的时候,系统要将程序中的一些状态信息存到栈中,然后再跳转执行,在参数保存和传递的过程中是需要时间和空间的开销,使得效率下降,特别是在频繁地调用函数的时候。...既然宏定义和内敛函数都可以完成替换,为什么还要引入内联函数呢?因为使用宏定义有时会产生意想不到的错误,这也是笔试题中经常考的地方。 什么错误呢?来看下面的例子,只是在上面的例子上多乘一个2.

    1.5K20

    由 Go 结构体指针引发的传递的思考

    } 再回到刚才的问题,当调用 sVals[1].Write() ,如果 Go 可以进行隐式引用转换,那么就应该转换成下面这种形式: (&sVals[1]).Write 实际上报了下面的错误...为什么要这样设计 为什么 map 要返回一个副本回来,而不是返回原始对象的地址?这种设计选择是出于安全性和一致性的考虑。...这两种传递方式决定了函数调用时参数是如何传递的: 传递传递复制数据 引用传递:引用传递复制的是数据的地址 Go 采用的就是传递,当调用一个需要参数的函数函数参数会复制一份,如果参数是一个指针...无论是类型还是引用类型(如指针),在作为参数传递函数都是通过传递的方式。...可能得性能问题 最后一个问题,既然函数传递和容器类结构维护存取的都是副本,那么如果反复传递一些大对象,就会频繁复制对象,导致性能下降,所以传递对象,应该尽量传递对象的指针,因为即使复制指针,指针类型长度在可控范围内

    22710

    EasyC++33,引用与const

    一般来说,如果传递的只是基本类型的变量,我们其实没有必要这么操作,直接传递即可。这种做法一般用在传递一些大型结构体或者是大型容器的时候。...除了表达式之外,如果变量的类型不匹配一样会创建临时变量。这些临时变量只会在函数调用期间存在,函数运行结束之后,编译器会将其删除。 为什么会有这样的设计呢?...由于类型不匹配,所以编译器会创建两个临时的int变量,但它们初始化成3和5,再传入函数当中。然后执行函数当中交换变量的逻辑,问题是,我们交换的是两个临时变量,原变量并不会生效。...所以后来版本的C++优化了这个问题,禁止了传递引用时创建临时变量。而当引用有const修饰并不会对原值进行修改,并不会影响逻辑和结果,所以豁免了这个禁令。...可以接受临时变量

    16610

    Scala之偏函数Partial Function

    特质规定了两个要实现的方法:apply和isDefinedAt,isDefinedAt用来告知调用方这个偏函数接受参数的范围,可以是类型可以是,在我们这个例子中我们要求这个inc函数只处理Int型的数据...这也是为什么我们可以把函数字面量赋给一个变量的原因, 是对象就有对应的类型,那么一个函数字面量的真实类型是什么呢?...那么,接下来我们看一下偏函数又应该是什么样的一种“类型”? 从语义上讲,偏函数区别于普通函数的唯一特征就是:偏函数会自主地告诉调用方它的处理参数的范围,范围既可是可以是类型。...为什么只有针对单一参数的偏函数,而不是像Function特质那样,拥有多个版本的PartialFunction呢?在刚刚接触偏函数,这也让我感到费解,看透了偏函数的实质之后就会觉得很合理了。...对,就是case语句,前面我们提到,case语句声明的变量就是偏函数的参数,既然case语句只能声明一个变量,那么偏函数受限于此,只能有一个参数!

    96690

    C语言:深入理解指针(2)

    4.运行结果第四行:根据加法交换律,*(i+arr)又可以反推成i[arr]的形式,我们发现这种形式成立的,这与们以往的认知有偏差,按道理来说[ ]中应该写的时数组的元素下标,这里将首元素地址写在了...既然数组传参传递的是一个地址(指针),那么根据之前学的swap函数交换,我们可以类比出,其实数组传参是一种特殊的传递,他可以通过访问地址来修改原数组的实际。...同时该图还可以说明:指针变量(一级指针)也是变量,有自己的地址,只不过时用来存放地址的,二级指针同样变量,只不过时用来存放一级指针的地址。    ...数组4:sizeof(arr4)=6,根据数组2的结论,sizeof会计算字符串中的\0,但是为什么不是7呢?...因为创建该数组的时候标明了只能存放6个元素,实际上这个数组是存放不下这个字符串的,所以实际大小只有6,为什么strlen(arr4)=33呢,因为这个数组只能存放6个元素,而abcdef已经占用了6个位置了

    13410

    Kotlin | 关于 Lazy ,你应该了解的这些事

    日常我们可能见过或者用的最多就是方式1或者方式3, 相对而言我个人用的比较多的是方式4和5,主要是其相比其他更适合常见的场景,这个在后文会提到为什么,先不做过多赘述。...如果我们看 SynchronizedLazyImpl 内部,会发现 Volatile 修饰了 _value ,那为什么呢?...如果此时线程A要修改变量sum,同样也是先对工作内存中的副本做更改,然后再刷新到主存里,至于什么时候写入主存中,无法保证。...SYNCHRONIZED 线程安全 比如有某个变量,可能会被多个线程同时调用,而且你不接受初始化函数可能会调用多次,所以可以使用此方法,需要注意的是,因为get其内部使用了对象锁,所以在多线程情况下...PUBLICATION 线程安全 但是相比前者,你可以接受 你的初始化函数可能被调用多次 ,并不影响你最终的使用,因为只有第一个初始化结果的才会被返回,并不影响你的逻辑,所以一般情况下,如果不在意上述问题

    1.4K40

    C++初阶 入门(2)

    c++中,定义函数的时候可以让最右边的连续若干个参数有缺省,在调用函数的时候,如果不写相应位置的参数,则调用的参数就为缺省,如此便构成了缺省函数 1.2为什么要有缺省函数 有的小伙伴可能会觉得...这时使用缺省函数便可以很好地解决问题 有的小伙伴便很自然地写出了下面这段代码,看似没有问题,编译器报错了。...简单地进行修改便可以得到下图函数,而在之后我们想要很快速的计算长宽均为5的长方体,便只需要传递一个参数,且当我们要计算的长方体长宽不是5,我们可以正常地进行参数的传递 1.4测试代码 #include...2.2为什么要有函数重载 看完概念的小伙伴一定会有一个疑惑,那就是这个函数重载它有用吗,在学习c的时候老师严肃强调的一件事就是绝对不要创建相同名字的函数或者是相同名字的变量,否则会导致编译器识别紊乱。...而在C++中,反而支持这种行为,这是为什么呢?

    15910

    临时变量作为非const的引用进行参数传递引发的编译错误

    其中文意思为临时变量无法为非const的引用初始化。也就是在参数传递的过程中,出现错误。...当这个临时对象传递给非const的string&引用类型,因为非const引用绑定对象,要求该对象也是非const对象。而在这时,因为string类型的临时对象是const对象,所以就出现错误。...---- 2.所有的临时对象都是const对象吗 为什么临时对象作为引用参数传递,必须是常量引用呢?很多人对此的解释是临时对象是常量,不允许赋值改动,所以作为非常量引用传递,编译器就会报错。...事实上,临时变量是可以被作为左(LValue) 并被赋值的,请看下面的代码: class IntClass{ private: int x; public: IntClass(int...这里贴上摘自网上的一句话:“内置类型产生的临时变量具有常性,而自定义类型产生的临时变量不具有常性”,我想这句话能解释你所谓的临时变量为什么能作为左的原因。”

    2.6K31

    势头强劲的 Python PK 强大的 C++,究竟谁更胜一筹?

    如下所示: int* y = &x 上述,我们创建了一个指针变量y,这个变量保存了变量x的内存地址。 假设你有一个函数接受变量作为输入(参数)。这个的变更意味着在函数内部创建一个新变量。...请记住,这在C++中会占用大量的内存,变量是通过传递函数的。 具体来说,首先我们创建一个将传入变量加100的函数。...void add_hundred(int x) { x += 100; } 这段代码接受一个变量x,然后将x加100。 在函数内部,任何有关这个的修改都会针对一个新变量,而不是原来的变量。...那么,为什么我们需要指针? 为了理解这一点,你必须明白和引用类型之间的区别。类型就好像每次都从物理上复制变量并赋给它一个新变量类型占用的空间更多,而且每个变量都有自己的内存地址。...(y); return 0; } 下面,我们创建了一个指针y,并传递给一个函数,而这个函数会将输入参数x加100,即使位于函数外部的x会发生变化。

    1.4K10

    Netty 解码器抽象父类 ByteToMessageDecoder 源码解析

    判断成员变量是否是第一次使用,(注意,既然使用了成员变量,所以这个 handler 不能是 handler 的。)将 unsafe 中传递来的数据写入到这个 cumulation 累积区中。...相较于拷贝,性能会更好点,同时会更复杂。...如果上面的判断过了,说明数组读到数据了,如果累积区的 readIndex 没有变化,则抛出异常,说明没有读取数据,数组增加了,子类的操作是不对的。...为什么要这么做。按道理,到这一步的时候,数组不可能是空,为什么这里还要这么谨慎的再发送一次? 答:如果是单次解码器,就需要发送了,因此单词解码器是不会再 callDecode 方法中发送的。...而构造函数中的 recycler 是一个空对象。我们看看这个对象: ? 当调用 recycle 方法的时候,什么不做。等待 GC 回收。因为这不是个对象池的引用。

    1.2K10

    Java 8 - Optional全解

    每次你不确定一个变量是否为 null ,都需要添加一个进一步嵌套的 if 块,增加了代码缩进的层数。很明显,这种方式不具备扩展性,同时还降低了代码的可读性。...如果 Optional 包含一个,那函数就将该作为参数传递给 map ,对该进行转换。如果 Optional 为空,就什么不做。...为什么呢? optPerson 是 Optional 类型的变量, 调用 map 方法应该没有问题。 getCar 返回的是一个 Optional 类型的对象 , ?...使用流, flatMap 方法接受一个函数作为参数,这个函数的返回是另一个流。这个方法会应用到流中的每一个元素,最终形成一个新的流的流。 但是 flagMap 会用流的内容替换每个新生成的流。...,出现这种情况,方法的返回不会包含任何

    50922

    golang学习笔记9:函数参数与返回

    如果传递函数的是一个指针,指针的(一个地址)会被复制,指针的所指向的地址上的不会被复制;我们可以通过这个指针的来修改这个所指向的地址上的。...(译者注:指针也是变量类型,有自己的地址和,通常指针的指向一个变量的地址。所以,按引用传递也是按传递。) 几乎在任何情况下,传递指针(一个32位或者64位的)的消耗都比传递副本来得少。...func myFunc(a, b, arg ...int) {} 这个函数接受一个类似某个类型的 slice 的参数 ,该参数可以通过for 循环结构迭代。...defer 和追踪 关键字 defer 允许我们推迟到函数返回之后(或任意位置执行 return 语句之后)一刻才执行某个语句或函数为什么要在返回之后才执行这些语句?...当然,可以直接对匿名函数进行调用:func(x, y int) int { return x + y } (3, 4)。

    1.1K20
    领券