Przeglądaj źródła

上传文件至 '指针1'

Creamo 3 lat temu
rodzic
commit
04a48e8b53

+ 33 - 0
指针1/1、指针的基本概念.cpp

@@ -0,0 +1,33 @@
+#include <iostream>
+
+//指针的作用:可以通过指针间接访问内存
+
+
+//内存编号是从0开始记录的,一般用十六进制数字表示
+//可以利用指针变量保存地址
+//指针就是一个地址
+
+int main1()
+{
+	//1、定义一个指针
+	int a = 10;
+	//定义指针的语法:数据类型 * 指针变量名
+	int * p;
+	//让指针记录变量a的地址
+	p = &a;
+	std::cout << "a的地址为:" << &a << std::endl;
+	std::cout << "指针p为:" << p << std::endl;
+
+	//2、如何使用一个指针
+	//可以通过解引用的方式来找到指针指向的内存
+	//指针前加一个*代表解引用,找到指针指向的内存中的数据
+	*p = 1000;
+	std::cout << "a = " << *p << std::endl;
+	std::cout << "*p = " << *p << std::endl;
+
+
+
+	system("pause");
+
+	return 0;
+}

+ 27 - 0
指针1/2、指针所占用内存空间.cpp

@@ -0,0 +1,27 @@
+#include <iostream>
+
+//指针也是种数据类型,那么这种数据类型占用多少内存
+//在32位操作系统下,指针占用4个字节内存空间
+//在64位操作系统下,指针占用8个字节内存空间
+
+int main2()
+{
+	//指针所占的内存空间大小
+
+	int a = 10;
+	//int* p;
+	//p = &a;
+
+	int * p = &a;
+
+	
+	std::cout << "sizeof (int*) = " << sizeof(int *) << std::endl;
+	std::cout << "sizeof (int*) = " << sizeof(float *) << std::endl;
+	std::cout << "sizeof (int*) = " << sizeof(double *) << std::endl;
+	std::cout << "sizeof (int*) = " << sizeof(char *) << std::endl;
+
+
+	system("pause");
+
+	return 0;
+}

+ 26 - 0
指针1/3、空指针.cpp

@@ -0,0 +1,26 @@
+#include <iostream>
+
+//空指针:指针变量指向内存中编号为0的空间
+//用途:初始化指针变量
+//注意:空指针只想的内存是不可以访问的
+
+
+
+
+int main3()
+{
+	//空指针
+	//1、空指针用于给指针变量进行初始化
+	int* p = NULL;
+
+	//2、空指针是不可以进行访问的
+	//0 ~ 255之间的内存编号是系统占用的,因此不可以访问
+
+	*p = 100;
+
+
+
+	system("pause");
+
+	return 0;
+}

+ 17 - 0
指针1/4、野指针.cpp

@@ -0,0 +1,17 @@
+#include <iostream>
+
+//野指针:指针变量指向非法的内存空间
+
+//总结:空指针和野指针都不是我们申请的空间,因此不要访问
+
+int main4()
+{
+	//野指针
+	//在程序中避免出现野指针
+	int* p = (int *)0x1100;
+	std::cout << *p << std::endl;
+
+	system("pause");
+
+	return 0;
+}