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

    容易错误的笔记:

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

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

  • 相关阅读:
    CocoaPods的安装使用和常见问题
    超全iOS面试资料,看完你还担心面试吗?
    IOS--多线程之线程间通讯
    iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
    java之NIO编程
    libthrift0.9.0解析(四)之TThreadPoolServer&ServerContext
    android开发笔记
    rtsp转发服务器设计
    神经网络文献资料
    deep learning in nlp 资料文献
  • 原文地址:https://www.cnblogs.com/hkleak/p/5016650.html
Copyright © 2011-2022 走看看