Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c中初始化长型指针变量_C_Pointers - Fatal编程技术网

如何在c中初始化长型指针变量

如何在c中初始化长型指针变量,c,pointers,C,Pointers,我正在尝试初始化长类型指针变量,如 long *status =1L; 它给我的错误是,long类型的-value不能用于初始化long*类型的实体。请帮帮我。 谢谢。您正在为地址赋值1L。将其更改为: long x = 1L; long *status = &x; 指针变量用于存储一些内存地址。您在这里试图做的是在指针中存储一些值(这是错误的)1L是一个long类型的值,您试图将其存储在long*类型的指针中(这就是错误说明的内容)。正确的方法是: 首先,将值存储在内存中: lon

我正在尝试初始化长类型指针变量,如

long *status =1L;
它给我的错误是,
long
类型的-value不能用于初始化
long*
类型的实体。请帮帮我。
谢谢。

您正在为地址赋值
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);

两个printf的输出将相同

任何正态变量的访问可以是:- 1。通过使用变量的名称。 2。通过使用变量的地址。 注意:-这就像你可以通过他/她的名字或他/她的社会地址找到一个人一样。

问题。什么是指针变量?它与我们使用的正态变量不同吗? 答案。指针是一个“特殊”变量,它包含(指向/引用)另一个变量在内存中的地址

第1点。我们可以有一个指向任何变量类型的指针。 第2点。用于间接访问变量第3点。这是需要记住的关键音符。指针类型定义它可以指向(引用)的变量类型

现在,问题来了:- 您希望在指针变量中存储一个长值,即1L。 根据“指针的使用”,这是完全错误的。

指针的概念-->

无论何时声明变量,系统都会在内存中为该变量分配一个位置以保存值。此位置将有自己的地址号

假设系统已为变量a分配了内存位置80F

int a = 10 ;

我们可以使用变量名a或地址80F访问值10。由于内存地址只是数字,因此可以将它们分配给其他变量。保存内存地址的变量称为指针变量。因此,指针变量只不过是一个包含地址的变量,地址是另一个变量的位置。指针变量的值将存储在另一个内存位置


为什么要将指针放在第一位?你想用这个指针做什么?那是因为你试图将
1
赋值给一个存储地址的指针。你可能在嵌入设置中重复,并且需要指向一个通过值知道的特定地址?为什么要这样做?@rsp-然后用
-Werror
编译,你的代码会更好。“内存地址(整数)”内存地址不一定是一个整数。@alk是的,你是对的。“内存地址(整数)”可能会产生误导。如果您喜欢我的方法以有效的方式解决您的问题,那么您可以投票或接受答案:)否则,请分享您的意见或任何其他疑问。;)没关系,伙计……)
int a = 10 ;