Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.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
c中指针的数据类型是什么?_C_Pointers - Fatal编程技术网

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

c中指针的数据类型是什么?,c,pointers,C,Pointers,指针是整数还是无符号数据类型?否。它们是指针,其大小取决于系统,唯一兼容的类型是void*指针类型。如果您想知道指针值在内存中是如何表示的,这实际上取决于平台。它们可能是简单的积分值(如在平面内存模型中),也可能是结构化值,如页码和偏移量(对于分段模型),也可能完全是其他值 指向任何数据类型的指针,它可以是char/int/float/double/。。。仅为无符号整数 原因:由于指针存储的地址是计算机内存中的一个位置,所以它总是正的,不能是负的。C中指针的数据类型是什么?这是唯一的问题 一个人

指针是整数还是无符号数据类型?

否。它们是指针,其大小取决于系统,唯一兼容的类型是
void*
指针类型。如果您想知道指针值在内存中是如何表示的,这实际上取决于平台。它们可能是简单的积分值(如在平面内存模型中),也可能是结构化值,如页码和偏移量(对于分段模型),也可能完全是其他值

指向任何数据类型的指针,它可以是char/int/float/double/。。。仅为无符号整数


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

C中指针的数据类型是什么?这是唯一的问题

一个人不应该偏离这个问题,在回答这个问题的时候对指针做任何解释

回答

  • C中一组整数的数据类型名是什么?名称为int,它是由所有允许的整数组成的集合的名称。因此我们声明int x;其中x可以采用集合中的任何值

  • 类似地,所有允许的地址或指针集的名称是什么。正如我所理解的,集合名只能是字符“*”,尽管在C语言的叙述中没有任何解释

  • 因此,我们将指针变量声明为*x;其中*是数据类型名称。否则,为什么要考虑指针数据类型并将其置于用户定义的数据类型之下。 由于存在所有RAM单元,“*”数据类型构成了允许和可访问内存单元的子集。因此,这是一组指针的数据类型名称

    int是有符号字符c中的修饰符;其中,signed是C中的修饰符。因此我们可以有int*x;这意味着位置中的数据是整数,这是编译器所必需的信息

    C将指针数据类型称为用户数据类型。也许将指针数据类型视为用户数据类型是错误的,因为用户对集合中的指针集没有控制,根据int的基本概念是集合名,浮点是集合名,字符是HARACTES的集合名,double是高精度数的浮点的集合名,COLOR是enum COLOR={蓝色、红色、黄色]中的数据类型名称。

    int*p

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

    在C中,指针可以访问任何数据类型的变量。指针应使用指针将指向的变量的数据类型声明。要以十六进制格式打印指针地址,请使用
    %p
    ,要以其他形式打印地址,请使用
    %u
    INTER将用于显示指针变量的值,使用
    *指针\u名称
    ,并且仅用于地址使用
    指针\u名称
    ,我相信指针本身就是数据类型。我的这一信念来自Brian Kernighan和Dennis Ritchie在《导论》第二版中所写的书,其中指出-

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

    请讨论或分享您的观点


    dennis ritchie的参考-c编程语言

    整数和无符号不是互斥的。事实上,只有整数类型可以无符号。指针类型和浮点类型都不能无符号。请将其中一个答案标记为已接受。另一个兼容类型是
    char*
    。MSalters:
    char*
    作为泛型指针已被弃用,不是吗?@NoufalIbrahim C99需要
    intptr\u t
    uintptr\u t
    指针类型而不是
    void*
    void*
    不兼容。隐式转换的存在与类型兼容性不同,后者的定义相当狭窄。@H2CO3:
    intptr\u t
    中定义的
    uintpttr\u t
    是可选的。没有足够大的整数类型的一致性实现不能在不丢失信息的情况下使用转换的
    void*
    值来定义它们。(我不知道有这样的实现,但它们是可能的。)不,指针不是“无符号整数”指针是指针。你说指针是指针是什么意思,你能再解释一下吗?我的意思是地址不能是负数,所以它必须是无符号整数。“它以十六进制格式存储地址。”我不认为这是真的。