示例说明“C++中的是按值访问的, Python 中变量的值是按引用访问的”

示例说明"C++中的是按值访问的, Python 中变量的值是按引用访问的"

C、C++、Python如何获取变量的地址

C 语言

在C语言中,可以使用取地址运算符(&)来获取变量的地址。

例如:

cpp 复制代码
#include <stdio.h>

int main() {
    int i  = 10;    
    printf("变量i 的地址是:%p\n", &i );
    
    return 0;
}

C++ 语言

在C++中,可以使用取地址运算(&)来获取变量的地址。C++还可以使用addressof()函数来获取变量的地址,注意addressof()函数是 C++11 标准库中引入的。

例如:

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    int i  = 10;
    
    cout << "变量i 的地址是:" << &i  << endl;
    cout << "变量i 的地址是:" << addressof(i) << endl;
    
    return 0;
}

Python 语言

在Python中可以使用内置函数id()来获取变量的地址。例如:

python 复制代码
i = 10
print("变量i 的地址是:", id(i))

需要说明的是,变量的地址通常是由操作系统和运行时环境自动管理的,因此它们通常不是固定不变的,如在不同的计算机上显示的不同值是正常的。

示例说明

请仔细比较解释下面两段代码运行结果

C++代码:

cpp 复制代码
#include<iostream>
using namespace std;

int main(){
	int a = 0;	
    cout<<a<<" "<<&a<<endl;
    a=a+1;
    cout<<a<<" "<<&a<<endl;
    int b=a; 
    cout<<b<<" "<<&b<<endl;
    b=20;
    cout<<a<<" "<<&a<<endl;
    cout<<b<<" "<<&b<<endl;
}

Python代码:

python 复制代码
a=0
print(a,id(a))
a=a+1
print(a,id(a))
b=a
print(b,id(b))
b=20
print(a,id(a))
print(b,id(b))

C++中的是按值访问的, Python 中变量的值是按引用访问的。

在C++中,变量a和b分别占用不同的内存空间。当将a的值赋给b时,会将a的值拷贝给b,但是a和b是独立的变量,存储在不同的内存地址中。

在Python中,变量a和b都是指向同一个内存地址的引用,它们共享同一块内存空间。当将a的值赋给b时,b实际上是指向了a所指向的内存地址。

相关推荐
民乐团扒谱机2 分钟前
【微实验】MATLAB 仿真实战:多普勒效应 —— 洒水车音乐的音调变化仿真
开发语言·matlab·多普勒效应·多普勒频移
寻星探路2 分钟前
【Python 全栈测开之路】Python 基础语法精讲(一):常量、变量与运算符
java·开发语言·c++·python·http·ai·c#
朔北之忘 Clancy8 分钟前
2020 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
csbysj202011 分钟前
组合实体模式
开发语言
御承扬13 分钟前
鸿蒙原生系列之动画效果(帧动画)
c++·harmonyos·动画效果·ndk ui·鸿蒙原生
智航GIS19 分钟前
10.5 PyQuery:jQuery 风格的 Python HTML 解析库
python·html·jquery
小兔崽子去哪了20 分钟前
机器学习,梯度下降,拟合,正则化,混淆矩阵
python·机器学习
万物皆字节23 分钟前
Spring Cloud Gateway 启动流程源码分析
java·开发语言·spring boot
问水っ24 分钟前
Qt Creator快速入门 第三版 第16-7章 其他内容
开发语言·qt
C_心欲无痕25 分钟前
ts - 关于Object、object 和 {} 的解析与区别
开发语言·前端·javascript·typescript