C语言的指针(基础篇章)

作者: 遮天的龙 | 来源:发表于2016-05-27 23:20 被阅读668次

    一、内存与指针

    **内存是以字节为单位进行编址的,内存中的每个字节都对应一个地址,通过地址才能找到每个字节。而我们常说的变量,变量的内存地址就是变量的指针。切记,指针是有类型地址常量。
    **

      内存的快捷方式——指针
    

    定义指针变量的一般形式:

     type *  variable  (指向数据类型 *指针变量名)
    

    二、指针变量

    • 重点就是区分一下下面的本质区别:
      在int var中; var、&var、var 者的区别?
      var——指针变量
      &var——对指针变量取地址
      *var——取指针变量地址所指向地址的内容
    • 给个例子:输入两个整数,存储在变量a和b中,当a小于b时,使用指针交换a和b并输出。
      这时大脑要有逻辑思想(以图形的形式吧):
    **p1指向a,p2指向b** 交换

    三、指针的运算

    指针运算的本质是指针中存储的地址的运算。

    • eg:p+n、p-n、p++、p--、++p和--p等,其中n是整数。
      解释:将指针p加上或者减去一个整数n,表示p向地址增加或减小的方向移动n个元素单元,从而得到一个新的地址,使能访问新地址中的数据。每个数据单元的字节数取决于指针的数据类型。
      #include<stdio.h>
      int main(void)
      {
      char p = (char)0x1234; //十六进制的地址
      printf("%x\n",p);
      printf("%x\n",p+2);
      printf("%x\n",p+4);
      return 0;
      }

    四、指针的一些基础小结

    • 指针变量的初始化问题小结:
      指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL。
    • 变量与指针变量:
      变量的实质是代表“内存中的某个存储单元”。指针变量是用来存储地址,而一般变量是存储数值的。指针变量可指向任何一种数据类型,但不管它指向的数据占用了多少字节,一个指针变量占用4个字节。
    • 数组名与指针变量:
      数组名是一个常量,不允许重新赋值。
      指针变量是一个变量,可以重新赋值。

    相关文章

      网友评论

      • ca07d10124a0:写太简单,且不严谨。
        遮天的龙: @小狼小股仙淼彦IF 嗯。会改善的。谢谢。
      • 阿群1986:能否创建一个指向自身的指针?
        遮天的龙:@阿群1986 哈哈。看来你也是大神来着。
        阿群1986:@阿群1986 再创建一对互相指向对方的指针

        void *p1=NULL;
        void *p2=NULL;

        p1 = &p2;
        p2 = &p1;
        阿群1986:void *p=NULL;
        p=(void *) (&p);

      本文标题:C语言的指针(基础篇章)

      本文链接:https://www.haomeiwen.com/subject/kjsfdttx.html