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);
    }

  • 相关阅读:
    tomcat使用不同的jdk版本 liunx 装两个jdk
    接下来自己的研究对象
    钉钉小程序开发的所有坑
    java 在web应用中获取本地目录和服务器上的目录不一致的问题
    Python2.7更新pip:UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
    vue项目中禁止移动端双击放大,双手拉大放大的方法
    JZ56 删除链表中重复的结点
    JZ55 链表中环的入口结点
    JZ54 字符流中第一个不重复的字符
    JZ53 表示数值的字符串
  • 原文地址:https://www.cnblogs.com/zhusd/p/1759393.html
Copyright © 2011-2022 走看看