指针巩固
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int num = 0; 6 int* p = # 7 cout << p << "\t" << &num << endl;//0x6dfee8 0x6dfee8 8 cout << *p << "\t" << num << endl;//0 0 9 return 0; 10 }
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int num = 0; 6 int* p = # 7 cout << p << "\t" << &num << endl;//0x6dfee8 0x6dfee8 8 cout << *p << "\t" << num << endl;//0 0 9 10 char ch = 'd'; 11 char* p_ch =&ch; 12 //char* 使p_ch会被当成字符串指针打印 13 cout << p_ch << "\t" << *p_ch << endl;//d d 14 cout << (void*)p_ch << "\t" << *p_ch << endl;//0x6dfee3 d 15 return 0; 16 }
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int a = 10; 6 int &b = a; 7 cout << b << a << endl;//1010 8 //int &c=10;//报错,引用对象不可以赋值为一个常数。 9 const int &d = 10; 10 cout << d << endl;//10 11 //加上const是常量引用,不加是变量引用 12 //引用相比于指针安全,所以推荐使用引用 13 return 0; 14 }
引用变量和原来的变量指向的内存空间一致。
数组名确实是数组的首地址,但是在sizeof(array)下是数组类型,大小是数组所占内存大小
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int num[4] = {1,2,5,4}; 6 int *p_a = num; 7 int *p_b = &num[0]; 8 cout << p_a[0] << "---" << p_b[1] << endl; 9 cout << *(++p_a) << "---" << *(p_b + 1) << endl;//*++num是不对的,不可以对数组名进行加减 10 11 return 0; 12 }
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int num[5]; 6 int *nums = new int[5]; 7 cout << sizeof(num) << '\t' << sizeof(nums) << endl;//20 4 8 //一个是数组,一个是变量。 9 10 delete [] nums; 11 nums = nullptr;//指向空指针,否则就成为野指针。容易内存泄漏 12 int* ptr = new int; 13 delete ptr; 14 ptr = nullptr; 15 return 0; 16 }
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int (*p)[3] = new int[3][3]; 6 p[1][1]=987; 7 for(int i = 0;i < 3; i++){ 8 for(int j = 0;j< 3; j++){ 9 cout << p[i][j] <<"=="<< *(*(p+i)+j) << " || ";//两种输出方法 10 } 11 cout << endl; 12 } 13 return 0; 14 }
作者:你的雷哥
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!