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

    容易错误的笔记:

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

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

  • 相关阅读:
    SpringBoot自定义HttpMessageConverter
    第一次使用Linux服务器所栽之坑
    入门Nginx
    HttpClient中的Timout
    SpringBoot启动
    SpringBoot注解
    百度2017春招笔试
    学习JUnit
    Mybatis中的@SelectKey注解
    PHP中MD5函数漏洞
  • 原文地址:https://www.cnblogs.com/hkleak/p/5016650.html
Copyright © 2011-2022 走看看