c++---指针

指针的作用:

可以通过指针间接访问内存。

指针就是一个地址

 

定义指针

指针定义的语法:数据类型* 指针变量名

 

使用指针

    int a=10;//定义变量
    int * p;//定义指针
    p=&a;//指针指向a的内存地址
    cout<<*p<<endl;//*p表示解引用,找到指针指向的内存中的数据

 

指针所占内存空间大小

32位操作系统:4

64位:8

 

空指针和野指针

空指针:指针指向内存中编号为0的空间

用途:初始化指针变量

注意:空指针指向的内存是不可访问的(0~255之前的内存编号是系统占用的,不可以访问)

 野指针:指针变量指向非法的内存空间

int * p=(int *)0x1100;

避免出现野指针和空指针的情况

 

const修饰指针 ——常量指针

const int *p=&a;//常量指针

常量指针特点:指针的指向可以修改,但指针指向的值不可以改

int * const p = &a;//指针常量

指针常量特点:指针指向的值可以修改,指针的指向不可以修改

const int * const p = &a;

特点:值和地址都不可以修改

 

指针和数组

int arr[10]={0,1,2,3,4,5,6,7,8,9};
int *p=arr;//arr就是数组的首地址
cout<<"利用指针访问第一个元素:"<<*p<<endl;
p++;//让指针向后偏移4个字节
cout<<"利用指针访问第二个元素:"<<*p<<endl;

 

指针和函数

值传递无法修改实参

地址传递可以修改实参

//地址传递
void Switch(int *a,int *b)
{
    int temp=*a;
    *a=*b;
    *b=temp;
}
int main(){
    int a=10;
    int b=20;
    Switch(&a,&b);
    cout<<a<<endl;
    cout<<b<<endl;
    system("pause");
}

 

posted on 2020-08-16 18:34  0黑曼巴00  阅读(235)  评论(0)    收藏  举报