#include<bits/stdc++.h> #include <iomanip> using namespace std; void swap(int *p1,int *p2){ int t=*p1; *p1=*p2; *p2=t; } int main() { //指针 //1、定义一个指针 int a=10; int *p=&a; printf("%d", &a); printf("%d\n", p); //2、使用指针 //通过解引用的方式来找到指针指向的内存 cout<<*p<<endl; //3、指针占用的内存大小 //在32位操作系统占4字节 //在64位操作系统占8字节 cout<<sizeof(p)<<endl; //空指针 //空指针用于给指针变量进行初始化 int *p1=NULL; //空指针是不可以进行访问的 //*p=100;报错(0~255之间的内存是系统占用的,不允许用户访问) //野指针 // 指针变量指向非法空间 int *p2= (int *)0x1100; //cout<<*p<<endl; //const 修饰指针 const int * p3=&a;//指针的指向可以改,指针的值不能改 int * const p4=&a;//指针的指向不可以改,指针的值能改 const int * const p5=&a;//指针的指向和值都不能改 //指针和数组的配合使用 //利用指针访问数组中的元素 int arr[10]={1,2,3,4,5,6,7,8,9,10}; int * p6=arr; cout<<*p6<<endl; p6++;//指针向后移动一个数据单位 cout<<*p6<<endl; //指针和函数 //地址传递 int m=10; int n=20; cout<<m<<endl; cout<<n<<endl; swap(&m,&n); cout<<m<<endl; cout<<n<<endl; return 0; }