我试图绕过指针,但目前却让人感到困惑。
当C编译器遇到内存中的变量时,它自然会读取存在的值。如果" X"等于8,那么X的值将被读出为8。
但是当编译器遇到内存中的指针时,它不会读取指针的值(指针的值是随机的),而是转到存储在指针中的地址。
但问题是,每个变量都有一个值和一个地址。为什么C专门去指针变量的地址?
我不确定如何以有道理的方式说出来。
当我们可以使用&amp ;;访问任何变量的地址时,声明指针变量的重点是什么?运算符并打印指针?
我无法直观显示指针变量。
我现在看到的方式是,每个变量都有一个地址和一个值。这是事实。我不确定指针变量的作用,因为它像普通变量一样,也有一个值和一个地址。
答案 0 :(得分:1)
在存储时,指针变量的处理方式与任何其他变量的处理方式相同。
给出以下声明
int i = 1;
int *p = &i;
你得到这样的东西:
Item Address Value
–––– ––––––– –––––
i 0x8000 1 // address values for illustration
p 0x8004 0x8000 // purposes only
整数变量i
存储在地址0x8000并包含值1
。指针变量p
存储在地址0x8004,包含i
的地址。
IOW,i
和p
之间的唯一区别是它们存储的值的类型以及允许对它们执行的操作。
至于我们使用指针的原因,在以下情况下它们是必需的:
它们在构建动态数据结构时也很有用。