指针的定义和使用:
#include<iostream>
using namespace std;
int main(){
int a=10;
int*p;
p=&a;
cout<<"a的地址为"<< &a<<endl;
cout<<"指针p为"<<p<<endl;
*p=1000;
cout<<"a="<<a<<endl;
return 0;
}
指针所占内存空间
#include<iostream>
using namespace std;
int main(){
int a=10;
int*p;
p=&a;
cout<<"sizeof(int*)"<<sizeof(int*)<<endl;
return 0;
}
空指针和野指针
#include<iostream>
using namespace std;
int main(){
int*p=NULL;
int*a=(int*)0x0100 ;
return 0;
}
const修饰指针
#include<iostream>
using namespace std;
int main(){
int a=10;
int b=10;
const int* p=&a;
p=&b;
int*const p2=&a;
*p2=20 ;
const int*const p3=&a;
return 0;
}
利用指针访问数组
#include<iostream>
using namespace std;
int main(){
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int*p=arr;
cout<<"利用指针来访问第一个元素"<<*p<<endl;
p++;
cout<<"利用指针来访问第二个元素"<<*p<<endl;
int*p2=arr;
for(int i=0;i<10;i++)
{
cout<<*p2<<endl;
p2++;
}
return 0;
}
指针和函数
#include<iostream>
using namespace std;
void swap(int*p1,int*p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;
}
int main(){
int a=10;
int b=20;
swap(&a,&b);
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
return 0;
}
指针配合数组和函数案例
#include<iostream>
using namespace std;
void bubbleSort(int*arr,int len)
{
for(int i=0;i<len-1;i++)
{
for(int j=0;j<len-i-1;j++)
{
if(arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
void printArray(int*arr,int len)
{
for(int i=0;i<len;i++)
{
cout<<arr[i]<<endl;
}
}
int main(){
int arr[10]={1,3,5,9,2,4,6,8,7,10};
int len=sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr,len);
printArray(arr,len);
return 0;
}