Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是指针对象,它是什么';s型? 例如,让我们考虑这个C代码: int x; const int *p = &x;_C_Pointers_Pointee - Fatal编程技术网

什么是指针对象,它是什么';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
。可能相关讨论“派生类型”