Python中参数和C/C++中参数的区别
2017-04-24 13:48
162 查看
我们知道在C/C++中:
不变参数是在内存中有对应的常量数据区,也就是说一开始定义的数据,不管是其所指的地址还是该地址所指的值都是不可变的;
而我们所说的变量,也就是可变参数,则包括值变量和指针变量,但其本身的地址是固定的,地址所指的内容是可变的;
Python函数参数对于可变对象,函数内对参数的改变会影响到原始对象;对于不可变对象,函数内对参数的改变不会影响到原始参数。对其理解:
1、可变对象,参数改变的是可变对象,其内容可以被修改,不是重新引用。
2、不可变对象,改变的是函数内变量的指向对象。而原始数据并没有发生变换,只是重新引用了对象;
相对于C/C++的优缺点:
优点:可以减少重复值的内存占用空间;
缺点:对执行效率带来一定的影响。
不变参数是在内存中有对应的常量数据区,也就是说一开始定义的数据,不管是其所指的地址还是该地址所指的值都是不可变的;
而我们所说的变量,也就是可变参数,则包括值变量和指针变量,但其本身的地址是固定的,地址所指的内容是可变的;
Python函数参数对于可变对象,函数内对参数的改变会影响到原始对象;对于不可变对象,函数内对参数的改变不会影响到原始参数。对其理解:
1、可变对象,参数改变的是可变对象,其内容可以被修改,不是重新引用。
2、不可变对象,改变的是函数内变量的指向对象。而原始数据并没有发生变换,只是重新引用了对象;
相对于C/C++的优缺点:
优点:可以减少重复值的内存占用空间;
缺点:对执行效率带来一定的影响。
相关文章推荐
- C/C++函数参数,传值域传址的区别!!!
- python 如何传递字典型变量(不定参数)给c++
- Python函数参数类型*、**的区别
- C、C++、C#、Java、php、python语言的内在特性及区别
- C++中传值参数和引用参数和指针怎样区别?
- python嵌入C++------ boost.python如何在C++中调用含有不定长参数tuple变量和关键字参数dict变量的函数
- C++ * a和*&a作为函数的参数时有什么区别
- C++中参数传递的两种方式:传值与传址及它们的区别
- [C++] 变量、指针、引用作函数参数的区别
- 细数Python与C++的区别(更新中……)
- python 如何传递字典型变量(不定参数)给c++
- C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别
- JAVA之等号、传类对象参数与c++的区别
- Python函数小结(1)--参数类型(*, ** 的区别), 闭包
- C与C++的细微区别——省略形式参数名
- C++中传值参数和引用参数和指针怎样区别?
- c++异常参数传递和普通函数参数传递的区别。
- C/C++函数参数,传值域传址的区别
- Python 面向对象的基本概念 与c++ 面向对象的基本概念有点区别
- C++嵌入Python程序(二):参数传入及返回