为什么我们需要浮点指针或整数指针分别指向浮点变量或整数变量?

Linux 极客

我对指针的了解是,它用于指向特定位置(内存地址),那么为什么我们甚至需要与我们试图指向的变量的指针数据类型相同的指针数据类型。假设我创建了一个整数变量,那么我必须创建一个指向整数的指针来指向它。那么为什么我不能创建一个空指针或浮点指针来指向存储在该整数变量中的值!我错过了一些指针的概念吗?

马克斯·朗霍夫

那么为什么我不能创建一个空指针 [...] 来指向存储在该整数变量中的值

你可以这样做,没问题:

int x = 10;
double y = 0.4;
void* v = &x;
v = &y;

但是现在想象一个这样的函数:

void print(void* value)

这个函数如何知道如何处理指针位置的内存?是整数吗?还是浮点数?一个float或一个double也许它是一个巨大的struct或一组值?必须知道这一点才能正确取消引用指针(即读取内存),因此只有为指向不同类型的指针使用不同的指针类型才有意义:

void print(int* value)

这个函数知道指针指向 an int,所以它可以愉快地取消引用它以获得一个int值。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们需要指针为Go / C中的变量分配值,而不是C#/ Java中的指针

来自分类Dev

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

来自分类Dev

无效指针=整数指针=浮点指针

来自分类Dev

为什么我们在C中将整数值转换为指针类型

来自分类Dev

为什么我们需要把*用作指针

来自分类Dev

为什么我们可以将整数分配给 char 变量

来自分类Dev

直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别

来自分类Dev

为什么我们不能将2D整数数组初始化为指针?

来自分类Dev

为什么我们需要声明枚举变量?(C)

来自分类Dev

为什么我们分别使用公共变量和私有变量

来自分类Dev

为什么我们不能比较不指向同一数组中元素的指针?

来自分类Dev

为什么我们访问由 char* 指向的字节的值而不是指针的值?

来自分类Dev

为什么我们使用指向一维数组或多维数组的指针

来自分类Dev

当我们可以通过&运算符传递变量的地址时,为什么要通过指针传递?

来自分类Dev

为什么我们需要分别编译和链接?

来自分类Dev

为什么我的指针变量持有其他地址,但仍成功指向变量?

来自分类Dev

在 C 中使用指针时,我们何时以及为什么需要使用 malloc?

来自分类Dev

为什么我们为glfwCreateWindow使用指针?-OpenGL

来自分类Java

指向Java整数的指针

来自分类Dev

指向整数的指针数组

来自分类Dev

如果resp是指向响应对象的指针,为什么我们不必使用resp *来访问其值?

来自分类Dev

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

来自分类Dev

我们如何将浮点数拆分为其整数和小数部分?

来自分类Dev

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

来自分类Dev

为什么我不能拥有指向与成员变量具有相同指针类型的对象的指针?

来自分类Dev

为什么在Go中无法将整数添加到“已取消引用”的指针变量中?

来自分类Dev

为什么使用浮点变量的计算与我的想法不同?

来自分类Dev

为什么我们不需要为局部变量提供初始值?

来自分类Dev

为什么在使用__syncthreads时我们不需要使用volatile变量

Related 相关文章

  1. 1

    为什么我们需要指针为Go / C中的变量分配值,而不是C#/ Java中的指针

  2. 2

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

  3. 3

    无效指针=整数指针=浮点指针

  4. 4

    为什么我们在C中将整数值转换为指针类型

  5. 5

    为什么我们需要把*用作指针

  6. 6

    为什么我们可以将整数分配给 char 变量

  7. 7

    直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别

  8. 8

    为什么我们不能将2D整数数组初始化为指针?

  9. 9

    为什么我们需要声明枚举变量?(C)

  10. 10

    为什么我们分别使用公共变量和私有变量

  11. 11

    为什么我们不能比较不指向同一数组中元素的指针?

  12. 12

    为什么我们访问由 char* 指向的字节的值而不是指针的值?

  13. 13

    为什么我们使用指向一维数组或多维数组的指针

  14. 14

    当我们可以通过&运算符传递变量的地址时,为什么要通过指针传递?

  15. 15

    为什么我们需要分别编译和链接?

  16. 16

    为什么我的指针变量持有其他地址,但仍成功指向变量?

  17. 17

    在 C 中使用指针时,我们何时以及为什么需要使用 malloc?

  18. 18

    为什么我们为glfwCreateWindow使用指针?-OpenGL

  19. 19

    指向Java整数的指针

  20. 20

    指向整数的指针数组

  21. 21

    如果resp是指向响应对象的指针,为什么我们不必使用resp *来访问其值?

  22. 22

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

  23. 23

    我们如何将浮点数拆分为其整数和小数部分?

  24. 24

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

  25. 25

    为什么我不能拥有指向与成员变量具有相同指针类型的对象的指针?

  26. 26

    为什么在Go中无法将整数添加到“已取消引用”的指针变量中?

  27. 27

    为什么使用浮点变量的计算与我的想法不同?

  28. 28

    为什么我们不需要为局部变量提供初始值?

  29. 29

    为什么在使用__syncthreads时我们不需要使用volatile变量

热门标签

归档