cpp: 内存地址
在 Visual Studio 调试器中使用“内存”窗口(C#、C++、Visual Basic、F#)
在调试器中查看变量的内存 - Visual Studio (Windows) | Microsoft Learn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /// <summary> /// 冒泡排序函数 /// int * arr 也可以写为int arr[] /// </summary> /// <param name="arr"></param> /// <param name="len"></param> void Geovin::bubbleSort( int * arr, int len) { //, int len //int len = sizeof(arr)/sizeof(int); for ( int i = 0; i < len - 1; i++) { for ( int j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } //printArray(arr); } /// <summary> /// 打印数组函数 /// </summary> /// <param name="arr"></param> /// <param name="len"></param> void Geovin::printArray( int arr[], int len) { //int len = sizeof(arr) / sizeof(int); for ( int i = 0; i < len; i++) { cout << arr[i] << endl; } } int arrDu[5] = {1,9,25,5,8}; int len = sizeof (arrDu) / sizeof ( int ); geovin.bubbleSort(arrDu, len); geovin.printArray(arrDu, len); cout << "冒泡排序:" << endl; for ( auto d : arrDu) { cout << "" << d << " " ; } cout << endl; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | int a = 10; char b; bool c; string d; cout << "变量a的地址:" << &a << endl; cout << "变量b的地址:" << &b << endl; cout << "变量c的地址:" << &c << endl; cout << "变量d的地址:" << &d << endl; cout << "a占用内存大小" << sizeof (a) << endl; cout << "变量b的内存地址:" << ( long long )&b << endl; cout << "变量b的地址:" << ( void *)&b << endl; cout << "变量b的地址:" << ( int *)&b << endl; int du = 10; //1.变量地址赋值给指针变量 cout << "du的地址:" << &du << endl; //指向变量du的首字节的地址 int * geovin2 = &du; cout << "geovin的指向" << geovin2 << endl; cout << "&geovin=" << &geovin2 << endl; //geovin自身的地址的编号 cout << "*geovin=" << *geovin2 << endl; //指向geovin的值 //2指针赋值给指针变量 int * geovindu = geovin2; cout << "geovindu的指向" << geovindu << endl; cout << "&geovindu=" << &geovindu << endl; cout << "*geovindu=" << *geovindu << endl; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | /// <summary> /// /// </summary> /// <param name="number1"></param> /// <param name="number2"></param> void Geovin::pointFunc( int * number1, int * number2) { int temp; temp = *number1; *number1 = *number2; *number2 = temp; cout << "number1=" << *number1 << endl; cout << "number2=" << *number2 << endl; } /// <summary> ///显示变量的十六进制地址的函数:varname - 变量名,addr - 变量的地址。 /// </summary> /// <param name="varname"></param> /// <param name="p"></param> void Geovin::func(string varname, void * p) //void *把其它类型的指针赋值给void*指针不需要转换 { cout << varname << "的地址是" << p << endl; } /// <summary> /// /// </summary> void Geovin::arryFunc() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int * p = arr; cout<< "第一个元素" << arr[0] << endl; cout << "P:=" << p << endl; cout << "指针访问第一个元素:" << *p << endl; for ( int i = 0; i < 100; i++) { cout << *p << " " ; p++; } cout << endl; } /// <summary> /// /// </summary> /// <param name="numberNO"></param> /// <param name="name"></param> void Geovin::constFunc( int numberNO, string name) { cout << "亲爱的" << name << "我是" << numberNO << "号" << endl; } /// <summary> /// 显示变量的十六进制地址的函数:varname - 变量名,addr - 变量的地址。 /// </summary> /// <param name="varname"></param> /// <param name="p"></param> void func(string varname, void * p) //void *把其它类型的指针赋值给void*指针不需要转换 { cout << varname << "的地址是" << p << endl; } /// <summary> /// /// </summary> void Geovin::diplayPoint() { int a = 10; char b; bool c; string d; cout << "变量a的地址:" << &a << endl; cout << "变量b的地址:" << &b << endl; cout << "变量c的地址:" << &c << endl; cout << "变量d的地址:" << &d << endl; cout << "a占用内存大小" << sizeof (a) << endl; cout << "变量b的内存地址:" << ( long long )&b << endl; cout << "变量b的地址:" << ( void *)&b << endl; cout << "变量b的地址:" << ( int *)&b << endl; int du = 10; //1.变量地址赋值给指针变量 cout << "du的地址:" << &du << endl; //指向变量du的首字节的地址 int * geovin2 = &du; cout << "geovin的指向" << geovin2 << endl; cout << "&geovin=" << &geovin2 << endl; //geovin自身的地址的编号 cout << "*geovin=" << *geovin2 << endl; //指向geovin的值 //2指针赋值给指针变量 int * geovindu = geovin2; cout << "geovindu的指向" << geovindu << endl; cout << "&geovindu=" << &geovindu << endl; cout << "*geovindu=" << *geovindu << endl; //常量指针,语法:const 数据类型 int aa = 3, bb = 8; const int * pp = &bb; const int * cc = &aa; cc = pp; // // //2 //int* pp = &bb; //*pp = 13; bb = 13; cout << "a=" << a << ",*p=" << *pp << endl; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Geovin geovin; //随机抽取字符串 //geovin.DisplayRomd(); //geovin.DisplayRomd(1); //显示十六进制地址 int aaa; char bbb; //cout << "a的指针是" <<(void*)&a << endl;//void*表示强制用十六进制转换 //cout << "b的指针是" <<(void*)&b << endl; geovin.func( "a" , &aaa); geovin.func( "b" , &bbb); geovin.arryFunc(); int ddu = 10; int ddu2 = 50; geovin.pointFunc(&ddu, &ddu2); int add = 1; string namedd = "geovindu" ; geovin.constFunc(add,namedd); |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
分类:
Cpp programming
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2018-05-07 cSharp:use Activator.CreateInstance with an Interface?