zoukankan      html  css  js  c++  java
  • C语言的指针

    指针常量:

    定义方式:

    #include <stdio.h>
    main()
    {
       int a = 10;
       int * const pi=&a;  /*定义一个指针常量*/
       a = 20;
       *pi = 35;
       printf("%d\n",a);
       printf("%d\n",*pi);
    }

    指针常量的意思是本身是常量,它自己的值不能被改变,但是它所指向的地址空间却不是常量,是可以被改变的

    例如上面的*Pi=35

    #include <stdio.h>
    main()
    {
       int a = 10;
       int b = 20;
       int * const pi=&a;  /*定义一个指针常量*/
       pi = &b;               //error 试图修改指针常量的值
       printf("%d\n",*pi);

    常量的指针

    定义方式:

    #include <stdio.h>
    main()
    {
       const int a = 10;
       const int b = 120;
       const  int *  pi=&a; //定义一个常量的指针,指针必须指向一个常量
       printf("%d\n",*pi);
       pi = &b;
       printf("%d\n",*pi);
    }

    常量的指针,本身的值,是可以改变的,如上例,但是所指向的地址的内容,却不能被改变,如下例:

    #include <stdio.h>
    main()
    {
       const int a = 10;
       const int b = 120;
       const  int *  pi=&a;
       *pi = 100;              //编译器会报错
       printf("%d\n",*pi);
    }

    但是常量的指针,可以指向普通的变量地址,只是不能用*pi的方式来修改变量的值,如下例会报错

    #include <stdio.h>
    main()
    {
       int a = 10;
       const  int *  pi=&a;
       *pi = 100;                //error

       printf("%d\n",*pi);

    但是这样却可以

    #include <stdio.h>
    main()
    {
       int a = 10;
       const  int *  pi=&a;
       a= 100;                //ok

       printf("%d\n",*pi);

    指向常量的指针常量

    #include <stdio.h>
    main()
    {
       int a = 10;
       int b = 20;
       const int * const pi=&a;  /*定义一个指针常量*/
       printf("%d\n",*pi);
    }

    指向常量的指针常量,也就是它本身的值不能改变,它指向的地址空间的值也不能改变

    #include <stdio.h>
    main()
    {
       int a = 10;
       int b = 20;
       const int * const pi=&a;  /*定义一个指针常量*/
       pi = &b;  //error 试图修改指针的值
       printf("%d\n",*pi);
    }

    #include <stdio.h>
    main()
    {
       int a = 10;
       int b = 20;
       const int * const pi=&a;  /*定义一个指针常量*/
       *pi = 200;  //error 试图修改指针所指向的变量的值
       printf("%d\n",*pi);
    }

  • 相关阅读:
    如果使用Excel oledb 导数据出现各种错误的解决方法
    如何对给定序列进行趋势预测
    Winform自定义控件之二叉树控件(2)
    WinForm自定义控件开发(1)
    .net 3.5 中的 服务器端回调
    Python内存管理
    oracle to mysql hibernate 实体id生成策略配置
    oracle to mysql
    mysql 删除所有表
    oracle函数在mysql用
  • 原文地址:https://www.cnblogs.com/zhusd/p/1759393.html
Copyright © 2011-2022 走看看