0
点赞
收藏
分享

微信扫一扫

指针巩固

烟中雯城 2022-06-28 阅读 75

指针巩固_c++

 

 

 指针巩固_数组_02

 

 

 指针巩固_#include_03

 

1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int num = 0;
6 int* p = &num;
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 = &num;
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 }

指针巩固_c++_04

 

 

 

​关于void*的一个详细介绍

指针巩固_#include_05

 

 

 

​ 关于空指针和空类型指针和野指针的介绍

 

 

 

 

 

指针巩固_数组_06

  指针巩固_#include_07

 

 

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 }

指针巩固_c++_08

 

 引用变量和原来的变量指向的内存空间一致。

 

数组名确实是数组的首地址,但是在sizeof(array)下是数组类型,大小是数组所占内存大小

指针巩固_#include_09

 

 

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 }

指针巩固_c++_10

 

    指针巩固_#include_11

 

  

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 }

指针巩固_c++_12

 

 指针巩固_数组_13

 

 

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 }

 

作者:你的雷哥

本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

举报

相关推荐

0 条评论