zoukankan      html  css  js  c++  java
  • 指针——内存和地址

    刚刚看了篇博文: 北大硕士开米粉店,3个月后的最大收获与感悟是

    里面的一些词,让我很触动,很有共鸣感,

    “书生式的无病呻吟”:确实,好像有很多时候觉得自己已经很苦逼了,可是看看那些在社会上用自己的双手为生计打拼的人,拿着国家津贴,父母的钱,却连最基本的学习都觉得苦,真是羞得无地自容啊!

    “理解和尊重”。。。不说废话了,下面记叙C语言的指针,一来知道指针是C语言的灵魂,二来,近来学习数据结构和算法,里面有很多指针的操作,理解还是有点困难呀!

    1.计算机的内存由位(bit)组成,每个位可以容纳值0和1.

    即:计算机内存的最小单位就是:位(bit)

    2.现实计算机的内存以字节(byte)为单位(bit太小啦!),每个字节8位,存储无符号值:0~255,或有符号值:-128~127

    3.指针的声明:int *p = &a (要死这都快忘了,p的值是a的地址,*p是a的值,其实可以拆成两句:int *p;(声明一个指针变量)p = &a;(指针变量赋值))

    4.变量的值就是分配给该变量内存位置所存储的数值。(爱死这句话 )

    5.指针一定要初始化,即给定它所指向的位置。一般初始化:int *p;p = NULL(表示特定指针P目前并未指向任何东西。)(当不确定指针指向何地址,

    如果地址确定,则将p直接赋值为该地址)

    6.p = 10 -*p 是非法的,因为它将一个整形数量(10-*p)存储与一个指针变量中。

    7.假定a存储于位置100,则*100 = 25;

    注意!注意!注意!(时至今日才明白这点)

    这个表达式是非法!理由:指针操作是间接访问的方式,而间接访问操作只能作用于指针类型表达式,而字面值100的类型是整型。!不是指针类型!

    如果你想把25存储与位置100,则必须使用强制类型转换。

    *(int *)100 = 25(这种方法基本不用,也不建议使用

    8.指针的指针(其实指针啊指针啊,也就是指针变量,归根结底就是个变量,先声明,在定义。

    没有什么太大的不同,只是指针变量的存放的是其他数据的地址值而已,也就是隐性的存在一种指向关系,间接访问)

    指针的指针,一层层的剥,首先它是一个指针,其次复杂的,它指向的也是一个指针啦!

    哎呀妈呀,想画张图,结果又一次发现自己是弱爆了!

    还是先上干巴巴的代码先:

    int   a = 12;
    int   *b = &a;
    int   **c = &b;   #*操作符具有自右向左的结合性

    代表的意义:

    表达式 相当的表达式
    a 12
    b &a
    *b a,12
    c &b
    *c b,&a
    **c *b,a,12

    9.&a不能作为左值。优先级表格显示&操作符的结果是个右值,它不能当作左值使用。

    理由:当表达式&a进行求值时,它的结果应该存储于计算机的位置是未知的。这个表达式并未表示任何机器内存的特定位置,因此无法对其进行赋值。

    暂且记下这么多,指针博大精深。。有待更加深究。。

                                                                                                                                                                                                                                                   

  • 相关阅读:
    QQ聊天界面的布局和设计(IOS篇)-第二季
    关于UIButton中的ContentEdgeInsets的深入研究
    QQ聊天界面的布局和设计(IOS篇)-第一季
    UITextField实现过滤选中状态拼音
    UITableView系列(1)---Apple缓存池机制
    应用程序打包(ipa)
    线程篇-01-NSThread
    IOS开发错误提示原因集合-----长期更新
    Divide and Conquer.(Merge Sort) by sixleaves
    [已完成,附上实现方式]DWZ横向导航实现动态左菜单树
  • 原文地址:https://www.cnblogs.com/shixiaomiao/p/4019309.html
Copyright © 2011-2022 走看看