它们似乎或多或少有相同的目的。 他们告诉我,指针只是数据位置的内存地址,因此您只需传递一个数字,而不是传递大型对象和数据。 但我仍然看不出差异。
请解释一下。答案 0 :(得分:2)
不,它们不是一样的,因为你需要访问指针才能访问指向的内容。
除非你将指针设为全局,否则你无法从任何地方访问它所指向的内容。
答案 1 :(得分:1)
指针是一种存储内存地址的变量。它们可以像任何其他变量一样具有范围。 全局变量是具有全局范围的变量,这意味着它可以从任何地方访问。
仅仅因为指针是全局的,它并不意味着内存中的数据是全局的。如果内存中的数据是从超出范围的垃圾收集(例如从if
语句结束或function
结束),指针现在将指向重新使用的内存,以及该值的值内存地址将无法预测。
如果有的话,指针通常用作共享局部变量的方法,而不用创建全局变量。相反,您只将指针传递给您想要的函数以与.x共享值。
答案 2 :(得分:0)
我会假设你在谈论c ++。除非将指针指定给全局变量,否则指针不是全局指针。这是c中的一个例子,在c ++中应该是相同的:
#include <stdio.h>
int x = 5; //Global variable
int* x_pointer = &x; //global pointer that holds the address of x
int main() {
int y = 43; //Local variable
int* y_pointer = &y; //local pointer that holds the address of y
return 0;
}
希望这有帮助!