当您可以直接将变量作为指针指向时,为什么要在C中创建指针?

直流电压

我正在学习C,并遇到了一个看起来似乎不必要的步骤的示例,但这又是我的新手。

他创建了一个变量,然后创建了一个专用指针来指向该变量。据我了解,您可以简单地在变量前面加一个*并将其用作指向它的指针...那么为什么要使用另一行代码创建一个指针呢?具体来说,我在说为什么他创建指针“ * p”只是为了引用“ x”,而不是说* x指向它。下面是示例代码:

#include <stdio.h>

int main()
{
    int x;            /* A normal integer*/
    int *p;           /* A pointer to an integer ("*p" is an integer, so p
                   must be a pointer to an integer) */
    p = &x;           /* Read it, "assign the address of x to p" */
    scanf( "%d", &x );          /* Put a value in x, we could also use p here */
    printf( "%d\n", *p ); /* Note the use of the * to get the value */
    getchar();
}

没错,您不需要额外的指针对象。

您的程序在行为上等同于:

int x;
scanf("%d", &x);
printf("%d\n", x);
getchar();

在示例中使用额外的指针可能是出于教学上的原因:解释如何声明和使用指针。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以将多个值中的某些或全部作为函数的指针返回吗?

来自分类Dev

为什么指向局部变量的指针转义到堆?

来自分类Dev

为什么当指针是变量时指针上的方法可以工作,但不是呢?

来自分类Dev

为什么将指向int的指针转换为void *但将指向函数的指针转换为bool?

来自分类Dev

指向Matlab变量的C指针

来自分类Dev

初始化指向整数的指针时,为什么在整数变量前使用“&”?

来自分类Dev

为什么将类型定义为指向C中未定义结构的指针有效?

来自分类Dev

将参数发送的指针的值分配给C中的本地指针时,为什么会出错

来自分类Dev

您可以将“函数指针指向指针”转换为void *

来自分类Dev

为什么要在c ++中创建指向原始类型的唯一指针?

来自分类Dev

作为功能参数的“指向变量的指针”做什么?

来自分类Dev

当我可以创建共享指针时,为什么不能创建指向数组的唯一指针?

来自分类Dev

当单指针可以在Objective-C中工作时,为什么要使用双指针?

来自分类Dev

是否可以在C ++中创建指向类的指针

来自分类Dev

为什么返回指向本地定义变量的指针为null而不是指向堆栈中位置的指针?

来自分类Dev

是否可以使用指向未实例化对象的指针作为C ++中的变量?

来自分类Dev

指向C ++中的指针的指针

来自分类Dev

您可以从C中当前指向的函数中更改指向函数的指针吗?

来自分类Dev

为什么在C ++中声明动态2D数组时使用指针指向?

来自分类Dev

当您可以直接将指针传递给C函数时,为什么要使用memcpy()?

来自分类Dev

C-为什么指向指针的指针与指向数组的指针不一样?

来自分类Dev

当在C ++中获得指向基类的指针时,为什么不为派生类对象调用重载函数?

来自分类Dev

作为参数传递时,在函数中更新指针地址。[将指针作为C中的引用传递]

来自分类Dev

为什么在C ++中可以将一个类的指针强制转换为另一类的指针?

来自分类Dev

为什么在创建/释放资源时OpenGL会使用指向资源ID的指针?

来自分类Dev

在C ++ 03中将指针模板和指向成员的指针作为模板参数

来自分类Dev

当指针指向零值时,为什么指针为空白?

来自分类Dev

尝试将变量的地址分配给声明为指向其他类型的变量的指针时,为什么会收到警告?

来自分类Dev

为什么在C中打印字符而不在字符串时使用星号作为指针?

Related 相关文章

  1. 1

    您可以将多个值中的某些或全部作为函数的指针返回吗?

  2. 2

    为什么指向局部变量的指针转义到堆?

  3. 3

    为什么当指针是变量时指针上的方法可以工作,但不是呢?

  4. 4

    为什么将指向int的指针转换为void *但将指向函数的指针转换为bool?

  5. 5

    指向Matlab变量的C指针

  6. 6

    初始化指向整数的指针时,为什么在整数变量前使用“&”?

  7. 7

    为什么将类型定义为指向C中未定义结构的指针有效?

  8. 8

    将参数发送的指针的值分配给C中的本地指针时,为什么会出错

  9. 9

    您可以将“函数指针指向指针”转换为void *

  10. 10

    为什么要在c ++中创建指向原始类型的唯一指针?

  11. 11

    作为功能参数的“指向变量的指针”做什么?

  12. 12

    当我可以创建共享指针时,为什么不能创建指向数组的唯一指针?

  13. 13

    当单指针可以在Objective-C中工作时,为什么要使用双指针?

  14. 14

    是否可以在C ++中创建指向类的指针

  15. 15

    为什么返回指向本地定义变量的指针为null而不是指向堆栈中位置的指针?

  16. 16

    是否可以使用指向未实例化对象的指针作为C ++中的变量?

  17. 17

    指向C ++中的指针的指针

  18. 18

    您可以从C中当前指向的函数中更改指向函数的指针吗?

  19. 19

    为什么在C ++中声明动态2D数组时使用指针指向?

  20. 20

    当您可以直接将指针传递给C函数时,为什么要使用memcpy()?

  21. 21

    C-为什么指向指针的指针与指向数组的指针不一样?

  22. 22

    当在C ++中获得指向基类的指针时,为什么不为派生类对象调用重载函数?

  23. 23

    作为参数传递时,在函数中更新指针地址。[将指针作为C中的引用传递]

  24. 24

    为什么在C ++中可以将一个类的指针强制转换为另一类的指针?

  25. 25

    为什么在创建/释放资源时OpenGL会使用指向资源ID的指针?

  26. 26

    在C ++ 03中将指针模板和指向成员的指针作为模板参数

  27. 27

    当指针指向零值时,为什么指针为空白?

  28. 28

    尝试将变量的地址分配给声明为指向其他类型的变量的指针时,为什么会收到警告?

  29. 29

    为什么在C中打印字符而不在字符串时使用星号作为指针?

热门标签

归档