什么是指针对象,它是什么';s型? 例如,让我们考虑这个C代码: int x; const int *p = &x;
什么是指针对象,它是什么';s型? 例如,让我们考虑这个C代码: int x; const int *p = &x;,c,pointers,pointee,C,Pointers,Pointee,p现在是指向常量int的非常量指针。但指针对象的类型是什么?它是int还是const int?我一直在寻找,但我没有找到一个精确的定义 为了避免混淆,const int*p表示p是指向const int的指针,而int*const p表示p是指向int的常量指针 我确实发现: 名词 指针对象(复数指针对象) (计算)指针引用的数据或对象 但是它不够精确,无法回答指针对象类型的问题。指针对象就是指针指向的对象。在这种情况下,指针对象是x,其类型为int 这样想:p是对象x的恒定“视图”,也就是通过
p
现在是指向常量int的非常量指针。但指针对象的类型是什么?它是int
还是const int
?我一直在寻找,但我没有找到一个精确的定义
为了避免混淆,const int*p
表示p是指向const int
的指针,而int*const p
表示p是指向int的常量指针
我确实发现:
名词
指针对象(复数指针对象)
(计算)指针引用的数据或对象
但是它不够精确,无法回答指针对象类型的问题。指针对象就是指针指向的对象。在这种情况下,指针对象是
x
,其类型为int
这样想:p
是对象x
的恒定“视图”,也就是通过p
您只能读取x
,但这不会改变x
是可变的这一事实
不管怎么说,别为这事操心太多。“指针对象”不是一个用得太多的术语,我甚至怀疑它是否在标准中定义。指针p的类型是p的剩余部分:
const int*
。指针对象的类型是*p:const int
的左边。在程序中,您必须注释const才能修改指针对象:
#include "stdio.h"
main()
{
int i = 42;
/* const */ int *p = &i;
*p = 43;
printf("i: %d", i);
}
六羟甲基三聚氰胺六甲醚。。。(有效)指针对象类型是const int
。。。而底层指针对象类型是int
。可能相关讨论“派生类型”