指针就是地址吗,指针变量难道不是地址?int *a是不是*a是指针 a是指针变量?那为什么说指针是常量?*a不也是可以变化的吗

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 06:53:34
指针就是地址吗,指针变量难道不是地址?int *a是不是*a是指针 a是指针变量?那为什么说指针是常量?*a不也是可以变化的吗

指针就是地址吗,指针变量难道不是地址?int *a是不是*a是指针 a是指针变量?那为什么说指针是常量?*a不也是可以变化的吗
指针就是地址吗,指针变量难道不是地址?
int *a
是不是*a是指针 a是指针变量?
那为什么说指针是常量?
*a不也是可以变化的吗

指针就是地址吗,指针变量难道不是地址?int *a是不是*a是指针 a是指针变量?那为什么说指针是常量?*a不也是可以变化的吗
指针 它的地址含两个概念,一个是指针自己的地址,另一个是它指向的地址.
当声明一个指针时,系统给指针分配了它自己的存放地址,这时它没有 指向的地址 的地址值,只有初始化,或者你给它赋了地址 或者动态分配了存储单元,它才有 指向的地址(地址值).
int *a; a 是 指针变量,它尚未存放 指向的地址 的地址值.
语句中的 *a 外形同声明里的 *a 外形一样,但概念意义不同(C语言的一个缺点).
语句中的 a 表示 指向的地址 的地址值,不是 指向的地址 里存放的数值.
语句中的 *a 表示数值,什么值呢,看它指向哪个地址,它的值等于 指向的那个地址里存放的值.如果尚未初始化,尚未给它赋了地址,*a 就没有值.
*a 的 变化 是它 指向的那个地址里存放的值 发生了变化.
声明为指向常量的指针,才可以指向常量,int *a 不指向常量,只指向int型变量.