zoukankan      html  css  js  c++  java
  • C指针QQ群问答

    指针一般认为是一个地址常量,但是指针变量指的是变量所取的值为地址的变量

    指针变量在使用中一般称作指针
    但两者所指并不相同

    const在星号右边,则这是个常量指针,在星号左边,则被指物是常量.

    但是对于迭代器 const vetor<int>::iterator iter // 却是指针是一个常量,他有自己的常量迭代器类型

    vector<int>::const_iterator

    指针变量是指向指针(即指针)的变量 

    指针存储地址,数组什么都可以存

    数组不支持++,--,+=,-=- -
    因为是常量指针
    指针常量 - -
    - -指针变量多了可以赋值的 

    那指针变量跟指针有什么区别

    整形变量,和10的区别

    &出来的都是只读指针
    *p 为指针变量 &i i变量的地址

    XX变量- -就是放XX的变量
    指针变量就是存放指针的变量
    p不是i的指针

    就像int a

    a不是10的整形

    p是指针变量

    &i才是i的指针

    int a = 10;
    那么a的值就是10
    指针是地址加上数据的类型
    指针变量也是一种变量

    p=&i,p指向i,&ii的指针

    既然是变量- -就是存放这个变量类型的东西

    那个变量专门存放地址


    就像两种类型的指针必须要强制转换一样

    I的地址指针

    const int *p;
    int *p=0x00000000 const;
    const int *p=0x00000000 const;
    搞清楚这3个指针

    const int *p;

    不能改变地址

    int *p=0x00000000 const;

    不能改变地址

    const int *p=0x00000000 const;

    不能改变地址里面的值

    第一个是不能改变地址里的数值
    第二个是不能改变指向的地址
    第三个是不能改变指向的地址,也不能改变指向地址里的值

    int a=123456789,b=987654321;

    const int *p;可以修改指向地址,但是只能读地址,不能写,*p=321,错误

    int *const p1=&a ;不能修改指向地址,但是可以读写地址,p1=&b,错误

    const int *const p2=&a ;既不能修改指向地址,也不能写地址,只能读地址,*p2=123,错误,p2=&b,错误

    const是一个C语言的关键字,它限定一个变量不允许被改变


  • 相关阅读:
    【毒链剖分】
    线段树——从入门到入土
    二分图最大匹配——找老婆问题(确信)
    【AC自动机(有了这个我就能AC了吗)】
    社交距离II
    【扩展KMP(Z函数)(这个区间看着不是很爽)】
    【KMP算法(烤馍片,真香)】
    【最短路系列问题】
    最近公共祖先LCA(我肯定是你的LCA)
    【并查集(又在乱牵线了)】
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3065836.html
Copyright © 2011-2022 走看看