zoukankan      html  css  js  c++  java
  • 指针系统学习8-小结

    1.有关指针的数据类型的小结

    2.指针运算小结

    一、指针变量加(减)一个整数,会指向上(下)1(i)个元素
      例如:p++、p--、p+i、p-i、p+=i、p-=i等。

    二、 指针变量赋值
      将一个变量地址赋给一个指针变量。如:
      p=&a;  (将变量a的地址赋给p)
      p=array; (将数组 array 首元素地址赋给p)
      p=&array[i];(将数组 array 第i个元素的地址赋给p)
      p=max;(max为已定义的函数,将 max 的入口地址赋给p)
      p1=p2;(p1 和 p2 都是指针变量,将 p2 的值赋给 p1)

    三、指针变量可以有空值,即该指针变量不指向任何变量,可以这样表示:p = NULL;注意NULL为宏定义,其值为0. 

    四、两个指针变量可以相减:如果两个指针变量都指向同一个数组中的元素,则两个指针变量值之差是两个指针之间的元素个数

    五、两个指针变量比较:若两个指针指向同一个数组的元素,则可以进行比较,比较的是在数组中的序数。指向前面的元素的指针变量“小于”指向后面元素的指针变量。

    3.关于 void类型

      void真正发挥的作用在于:

    1. 对函数返回的限定;
    2. 对函数参数的限定。

      例如:void abc( void );

    1.void指针

      ANSI C新标准增加了一种“void”指针类型,即不指定它是指向哪一种类型数据的指针变量。

       例如:void *p;   表示指针变量p不指向一个确定的类型数据,它的作用仅仅是用来存放一个地址。

      void指针它可以指向任何类型数据。也就是说,可以用任何类型的指针直接给void指针赋值。但是,如果需要将void指针的值赋给其他类型的指针,则需要进行强制类型转换。


    2.const指针
      三个例子谈谈const:

      example1:

    #include <stdio.h>
    
    void main(void)
    {
          const char *str= "Welcome to Fishc.com!
    
    ";
          // 这个语句的含义是:声明一个名为str的指针变量,
          // 它指向一个字符型常量,const作用是使一个变量常量化,使其不能被改变,
          // 初始化str为指向字符串,"Welcome to Fishc.com!
    
    "
          printf("
    
    %s", str);
    #if (0)
          str[0] = 'w';       //这条语句是错误的,因为是const常量对象,不能不赋值,但可以改变str指针的值 
    #endif
    
          str = "I love Fishc.com!
    
    ";   //合法!
    
          printf("
    
    %s", str);
    }

      example2:

    #include <stdio.h>
    
    void main(void)
    {
          char * const str = "Welcome to Fishc.com!
    
    ";
          // 常量指针是一个固定的指针,不可以改变它的值,但它所指的数据可以改变。
    
    
          str[0] = 'w';       //合法!编译合法,但是执行结果出错,因为存放在data区,无法改写。
    
    #if( 0 )
          str = "I love Fishc.com!
    
    ";   //非法!!
    #endif
    
          printf("
    
    %s", str);
    }

      example2:

    #include <stdio.h>
    
    void main(void)
    {
          const char * const str = "Welcome to Fishc.com!
    
    ";
          // 常量指针是一个固定的指针,不可以改变它的值,但它所指的数据可以改变。
    
    
          str[0] = 'w';                   //非法!
    
          str = "I love Fishc.com!
    
    ";  //非法!!
    
    
          printf("
    
    %s", str);
    }

     



  • 相关阅读:
    oracle查看所有角色
    jQuery 异步提交表单实例解析
    oracle查看用户系统权限
    js中日期操作大全
    oracle 查询用户下所有表
    JS语法字典
    JS定时器例子讲解
    开源软件
    rpm的使用
    lvs+keepalived和haproxy+heartbeat区别
  • 原文地址:https://www.cnblogs.com/tianqizhi/p/10053026.html
Copyright © 2011-2022 走看看