您的位置:首页 > 编程语言 > C语言/C++

C++ 指针

2016-05-12 11:24 323 查看
地址:  计算机要找到变量i,就需要先找到i的地址,也就是i在内存中的编号,然后通过该编号,计算机可以访问i并且对它进行操作。

指针: 指针就是用来保存内存地址的变量。

由于每个被定义的变量都有自己的地址,因此你完全可以使用指针来存放任何已被定义的变量的地址,即使它没有被赋值。

指针使用的注意点:

1. 指针与变量类型:   指针只能存储与它类型相同的变量的地址

2. 用指针来访问值:运算符号*被称为间接引用运算符,当使用星号*时,就读取它后面变量中所保存的地址处的值。

3.指针地址、指针保存的地址和该地址的值

指针地址:指针自身的地址

指针保存的地址:

指针保存的地址处的值:

#include
"address.hpp"

#include <iostream>

using namespace
std;

//int main()

//{

////    int a;

//    int *p = 0;

////    p=&a;

////    cout<<"&a:"<<&a<<endl;

//    cout<<"p:"<<p<<endl;

//    return 0;

//}

int main()

{

    int a=1;

    int *p;

    p=&a;//用指针变量p来保存变量a的地址

    cout<<"&a:"<<&a<<endl;

    cout<<"a:"<<a<<endl;

    cout<<"p:"<<p<<endl;

    cout<<"*p:"<<*p<<endl;
//读取变量p中保存的地址处的值

    return 0;

}

int main()

{

    int i;

    int *p=0;

    cout<<"i的地址为:"<<&i<<endl;

    cout<<"p的值为:"<<p<<endl;

    cout<<"p的内存地址为:"<<&p<<endl;

    i=3;

    cout<<"i的地址为:"<<&i<<endl;

    p=&i;

    cout<<"p的值为:"<<p<<endl;

    cout<<"p的内存地址为:"<<&p<<endl;

    return 0;

}

4.指针对数值的操作(修改数值变量的对应地址的值,从而达到修改变量的值)
typedef unsigned short int ut;

int main()

{

   ut i;

   ut *p=0;

   i=5;

   p=&i;

   cout<<"i="<<i<<endl;

   cout<<"*p="<<*p<<endl;

   cout<<"用指针来修改存放在i中的数据...\n";

   *p=90;

   cout<<"i="<<i<<endl;

   cout<<"*p="<<*p<<endl;

   cout<<"用i来修改存放在i中的数据...\n";

   i=9;

   cout<<"i="<<i<<endl;

   cout<<"*p="<<*p<<endl;

   return 0;

}

5、更换指针保存的地址

int main()

{

    int i=10;

    int j=20;

    int *p=&i;

    cout<<"i:"<<"\t"<<i<<endl;//10

    cout<<"&i:"<<"\t"<<&i<<endl;//i的地址

    cout<<"j:"<<"\t"<<j<<endl;//20

    cout<<"&j:"<<"\t"<<&j<<endl;//j的地址

    cout<<"p:"<<"\t"<<p<<endl;//p保存i的地址

    cout<<"*p:"<<"\t"<<*p<<endl;//10

    p=&j;//p
保存j的地址

    cout<<"更换地址后\n";

    cout<<"i:"<<"\t"<<i<<endl;//10

    cout<<"&i:"<<"\t"<<&i<<endl;//i的地址

    cout<<"j:"<<"\t"<<j<<endl;//20

    cout<<"&j:"<<"\t"<<&j<<endl;//i的地址

    cout<<"p:"<<"\t"<<p<<endl;//j的地址

    cout<<"*p:"<<"\t"<<*p<<endl;//20

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: