zoukankan      html  css  js  c++  java
  • 常量指针与指向常量的指针

     1 #include<stdio.h>
     2 void main(){
     3         int a = 1;
     4         int const *p1;//指向常量的指针
     5         const int *p2;//指向常量的指针
     6         p1 = &a;
     7         p2 = &a;
     8         *p1 = 2;//企图改变a的值(非法)
     9         *p2 = 2;//企图改变a的值(非法)
    10 
    11         int * const b;//常量指针(常指针)
    12         b = &a;//企图改变b的值。(非法)
    13 }

    编译结果:

    hello.c: In function ‘main’:
    hello.c:8:2: error: assignment of read-only location ‘*p1’
      *p1 = 2;//企图改变a的值(非法)
      ^
    hello.c:9:2: error: assignment of read-only location ‘*p2’
      *p2 = 2;//企图改变a的值(非法)
      ^
    hello.c:12:2: error: assignment of read-only variable ‘b’
      b = &a;//企图改变b的值。(非法)
      ^

    区分技巧:

      首先两者都是指针。看*和const谁离的变量名近:如果const近,那么就是const指针(const=常量嘛,常指针);如果*近,就是指向常量的指针,此时const与int的位置无关。

  • 相关阅读:
    java中的拷贝(二)深克隆
    java中的拷贝(一)
    java类的访问权限
    对象和对象引用
    equals和==
    类与继承(一)
    WebSocket简单介绍
    php获取请求的方式(get/post)
    php 使用jquery实现ajax
    PHP 系统常量及自定义常量
  • 原文地址:https://www.cnblogs.com/airduce/p/9111957.html
Copyright © 2011-2022 走看看