zoukankan      html  css  js  c++  java
  • C++指针笔记

    什么是指针:

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。通过指针我们可以直接对内存进行操作。

    什么是地址:

    比如你要给你朋友寄快递,在寄东西的时候是不是要填写地址,通过地址你的东西才能送到朋友手里。同理,比如你定义一个变量为i。

    而这个变量i是存在计算机内存中的,也就是i在这个内存中的编号,即地址。

    举例:

    #include <iostream>
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int a ;  //定义了一个整型变量 a
    	int *p ; //定义了一个整型指针p, *代表变量P是一个指针
    	p=&a;     //将变量a的地址取出 在赋给变量P 这样P保存的内存地址就是a的地址  &符号是取地址符
    	cout << "变量a地址:"<< &a  << endl;
    	cout << "指针p地址:" << p << endl;
    	cin.get();
    	return 0;
    }

    图解:

    可以发现指向的地址是一样的

    空指针!:

    指针是用来保存内存地址的变量,如果我们不初始化,该指针就是一个失控指针,它可以指向内存中的任何地址。所以记得要初始化。

    一般定义的时候初始化都是为0。

    int *p ;
    p=0;  //为0
    
    /*
    下一句的写法就是上一句合并的写法  一般写法上按照下一句写法
    */
    
    
    int *p=0;     //初始化为0
    

    用指针来访问存储值: 

    #include <iostream>
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int love = 520;  //定义一个int类型变量love 初始化值为520
    	int *gril = 0;   //定义一个int指针gril 初始化值为 0
    	gril = &love;   //用指针变量gril来保存变量love的地址
    	cout << "gril值:" << *gril << endl;    //输出为520
         cin.get(); return 0; }

    其中 cout << "gril值:" << *gril << endl;

    这里*gril因为保存的是love变量的地址,因此输出520

    容易错误的笔记:

    对于指针,最容易混淆的概念是:指针内存地址和指针地址值!!!

    搞的我脑壳有点晕了 笔记暂时做到这了。。。。。

  • 相关阅读:
    HAproxy 1.5 dev14 发布
    IBM/DW 使用 Java 测试网络连通性的几种方法
    Skype 4.1 Linux 发布,支持微软帐号登录
    Dorado 7.1.20 发布,Ajax的Web开发平台
    Aspose.Slides for Java 3.0 发布
    开发版本 Wine 1.5.18 发布
    BitNami Rubystack 开始支持 Ruby 2.0
    XWiki 4.3 正式版发布
    Silverlight实例教程 Out of Browser的Debug和Notifications窗口
    Silverlight实例教程 Out of Browser与Office的互操作
  • 原文地址:https://www.cnblogs.com/hkleak/p/5016650.html
Copyright © 2011-2022 走看看