如何在C初始化long类型的指针变量
接取到任何正常变量可以是: - 。通过使用变量的名称。 。通过使用变量的地址。 注意: - 就像你可以通过使用他/她的名字或在社会中使用他/她的地址来找到一个人。
Ques。什么是指针变量?它与我们使用的普通变量不一样吗? Ans。指针是一个“特殊”变量,它包含(指向/参考)另一个变量在内存中的地址。
point 1.我们可以有一个指向任何变量类型的指针。 第2点。它用于间接访问变量。 第3点。其要记住的关键。指针的类型定义了它可以指向(引用)的变量的类型。
现在,来找你问题: - 你想存储一个长的值,即1L在一个指针变量。 根据“使用指针”完全错误。
指针的概念 - >
每当一个变量声明,系统将分配一个位置,以该变量在存储器中,持有值。该位置将拥有自己的地址号码。
让我们假设系统为变量a分配了内存位置80F。
int a = 10 ;
我们可以通过使用变量名或一个地址80F或者访问该值10。由于内存地址只是数字,因此可以将其分配给其他变量。保存内存地址的变量称为指针变量。因此指针变量不过是一个包含地址的变量,该地址是另一个变量的位置。指针变量的值将被存储在另一个内存位置。
如果您喜欢我的方式来有效地解决您的问题,那么您可以投票或接受答案.. :)否则,分享您的意见或任何其他疑问。 ;) –
是的,谢谢大家的帮助,这是我的错误。 – Robert
没关系......;) –
您正在将值1L
赋值给一个地址。将其更改为:
long x = 1L;
long *status = &x;
指针变量用于存储某些内存地址。你在这里试图做的是在指针中存储一些值(这是错误的)。 1L
是您尝试存储在类型为long*
(这是错误说的内容)的指针中的类型long
的值。做到这一点的正确的方法是:
首先,存储在存储器中的值:
long lg = 1L;
其次,初始化指向上述变量的存储器位置的指针:
long* lptr = ≶ //&lg means address of the variable lg
要访问值1L
您可以选择以下任意方法:
printf("%ld",lg);
OR
printf("%ld",*lptr);
两者中的printf的输出将是相同的
“*内存地址(整数)*”内存地址不一定需要是一个整数。 – alk
@alk是的,你是对的。 _“内存地址(整数)”_可能会引起误解。 –
为什么你想在第一个指针?你想用这个指针做什么? – Danh
这是因为你试图给存储地址的指针指定1。 –
可能的重复[为什么我应该使用指针而不是对象本身?](http://*.com/questions/22146094/why-should-i-use-a-pointer-rather-than-the-object - 本身) –