c中指针的数据类型是什么?

时间:2010-10-20 09:19:35

标签: c pointers

是整数或无符号数据类型的指针吗?

7 个答案:

答案 0 :(得分:24)

没有。它们是指针,其大小取决于系统,其唯一兼容类型为void*

答案 1 :(得分:8)

指针是指针类型。如果您询问指针值如何在内存中表示,那实际上取决于平台。它们可以是简单的整数值(如在平面存储器模型中),或者它们可以是结构化值,例如页码和偏移(对于分段模型),或者它们可以是完全不同的东西。

答案 2 :(得分:3)

在C中,指针可以访问任何数据类型的变量。应该使用指针指向的变量的数据类型声明指针。要以十六进制格式打印指针的地址,请使用%p并以其他形式打印地址使用%u。如果指针将用于显示指向变量的值,请使用{{1并且仅用于地址使用*pointer_name

答案 3 :(得分:0)

我相信指针本身就是数据类型。我的这个信念来自于 Brian Kernighan 和 Dennis Ritchie 所写的书,第 2 版引言部分指出 -

BCPL 和 B 是“无类型”语言。相比之下,C 提供了多种 数据类型。基本类型是字符、整数和几种大小的浮点数。此外,还有使用指针、数组、结构和联合创建的派生数据类型的层次结构。

请讨论或分享您的观点。

参考 - dennis ritchie 编写的 c 编程语言

答案 4 :(得分:-3)

int * p;

* p的数据类型是指针。 它指向整数类型变量。 它以十六进制格式存储地址。

答案 5 :(得分:-4)

指向任何数据类型的指针,可能是char / int / float / double / ...只是无符号整数。

原因:由于指针存储地址,这是计算机内存中的一个位置,因此它总是正数,不能为负数。

答案 6 :(得分:-4)

C中指针的数据类型是什么?是一个独特的问题。

一个人不应该偏离问题来对指针作出任何解释作为问题的答案吗?

答案。

  1. C中一组整数的数据类型名称是什么?名称是int,它是包含所有允许的整数的集合的名称。因此我们声明int x;其中x可以假设集合中的任何值。

  2. 同样,所有允许的地址或指针的名称是什么? 。集合名称只能是我想象的字符'*',但在C语言叙述中没有任何解释。

  3. 因此我们将指针变量声明为* x;其中*是数据类型名称。否则,为什么应该考虑指针数据类型并将其置于用户定义的数据类型下。 由于存在所有RAM单元,因此'*'数据类型构成允许和加密存储器单元的子集。因此,这是一组指针的数据类型名称。

    int是signed char c中的修饰符;其中signed是C.Hence中的修饰符,我们可能有int * x;意味着该位置的数据是一个整数,这是编译器的必要信息。

    C将指针数据类型说成用户数据类型。将指针数据类型视为用户数据类型可能是错误的,因为用户无法控制集合中的指针集,因为int的基本概念是集合名称,float是集合名称,char是haracters的集合名称,double是高精度数字的浮点数的集合名称,颜色是枚举颜色中的数据类型名称= {蓝色,红色,黄色)。

相关问题