【2021-02-06】C++指针基础
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 5 //1. 如何定义一个指针 6 int a = 10; 7 //指针定义的语法:数据类型 *指针变量名 8 int *p; 9 //让指针记录变量a的地址 10 p = &a; 11 12 cout << "a的地址为:" << &a << endl; 13 cout << "指针p = " << p <<endl; 14 //2.如何使用指针 15 //可以通过解引用的方式来找到指针指向的内存 16 //指针前加*代表解引用,找到指针指向内存中的数据 17 cout << "a = " << a << endl; 18 cout << "*p = " <<*p << endl; 19 20 21 22 23 system("pause"); 24 25 return 0; 26 }
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 5 //指针所占内存空间大小 6 int a =10; 7 int *p = &a; 8 9 //在32位操作系统下,指针占4个字节 10 //在64位操作系统下,指针占8个字节 11 cout << "sizeof int * =" << sizeof(int *) <<endl; 12 cout << "sizeof float * =" << sizeof(float *) <<endl; 13 cout << "sizeof double * =" << sizeof(double *) <<endl; 14 cout << "sizeof char * =" << sizeof(char *) <<endl; 15 16 system("pause"); 17 18 return 0; 19 }
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 5 //空指针 6 //1.用途:初始化指针变量 7 int *p = NULL; 8 9 //2。空指针不可以进行访问 10 //0~255之间的内存编号是系统占用的,因此不可以访问 11 12 //野指针,指向非法内存空间 13 //程序中,避免出现野指针 14 int *a =(int *)0x1100; 15 16 system("pause"); 17 18 return 0; 19 }
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 5 //1.const修饰指针 常量指针 6 int a=10; 7 int b=10; 8 9 const int *p = &a; 10 //指针指向的值不可以改,指针的指向可以改 11 //*p=20; 12 p = &b; 13 14 //2.const修饰常量 指针常量 15 //指针指向不可以改,指针指向的值可以改 16 int * const p2 =&a; 17 *p2 = 100; 18 //p2 = &b; 19 20 //3.const修饰指针和常量 21 const int * const p3 = &a; 22 //*p3 = 100; 23 //p3 =&b; 24 25 system("pause"); 26 27 return 0; 28 }
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 5 //指针和数组 6 //利用指针访问数组中的元素 7 8 int arr[10]={1,2,3,4,5,6,7,8,9,10}; 9 10 cout << "第一个元素为:" << arr[0] << endl; 11 12 int *p = arr; //arr就是数组的首地址 13 cout << "利用指针访问第一个元素为:" << *p << endl; 14 15 p++;//指针向后偏移4个字节 16 cout << "利用指针访问第二个元素为:" << *p << endl; 17 18 cout << "利用指针遍历数组:" << endl; 19 20 int *p2 =&arr[0]; 21 for(int i = 0; i<10;i++){ 22 cout << *p2 << endl; 23 p2++; 24 } 25 26 system("pause"); 27 28 return 0; 29 }
1 #include<iostream> 2 using namespace std; 3 //实现两个数字进行交换 4 void swap01(int a,int b) 5 { 6 int temp = a; 7 a = b; 8 b =temp; 9 cout << "swap01 a=" << a << endl; 10 cout << "swap02 b=" << b << endl; 11 } 12 13 void swap02(int *p1,int *p2) 14 { 15 int temp = *p1; 16 *p1 = *p2; 17 *p2 =temp; 18 } 19 int main(){ 20 21 //指针和函数 22 //1.值传递 23 int a =10; 24 int b =20; 25 // swap01(a,b); 26 // cout << "a=" << a << endl; 27 // cout << "b=" << b << endl; 28 29 30 //2.地址传递 31 //如果是地址传递,可以修饰实参 32 swap02(&a,&b); 33 cout << "a=" << a << endl; 34 cout << "b=" << b << endl; 35 system("pause"); 36 37 return 0; 38 }
1 #include<iostream> 2 using namespace std; 3 //冒泡排序 参数2 数组的首地址,参数2 数组长度 4 void bubbleSort(int *arr,int len) 5 { 6 for(int i = 0;i<len - 1;i++) 7 { 8 for(int j = 0;j<len - i -1;j++) 9 { 10 //如果j>j+1的值 交换数字 11 if(arr[j]>arr[j+1]) 12 { 13 int temp = arr[j]; 14 arr[j] = arr[j+1]; 15 arr[j+1] = temp; 16 } 17 } 18 } 19 } 20 void printArray(int *arr,int len) 21 { 22 for(int i=0;i<len;i++) 23 { 24 cout << arr[i] << endl; 25 } 26 } 27 28 int main(){ 29 30 //1.创建一个数组 31 int arr[10]={5,4,2,6,9,8,7,1,3,12} ; 32 33 // 数组长度 34 int len = sizeof(arr)/sizeof(arr[0]); 35 36 //2.创建函数,实现冒泡排序 37 bubbleSort(arr,len); 38 39 //3.打印排序后的数组 40 printArray(arr,len); 41 42 system("pause"); 43 44 return 0; 45 }

指针的一些基础代码
浙公网安备 33010602011771号