cpp: 内存地址
在 Visual Studio 调试器中使用“内存”窗口(C#、C++、Visual Basic、F#)
在调试器中查看变量的内存 - Visual Studio (Windows) | Microsoft Learn
/// <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;
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;
/// <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; }
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(涂聚文)