-1

我希望能够使用函数进行输入,但我想存储信息。无论如何要声明一个没有名称且只能通过指针访问的变量?

像这样的东西:

float* = float NULL 5;

谢谢。

已编辑:我需要做的是拥有无限数量的数组来存储大量整数。但是,我正在从文件中加载所有这些数据,并且需要从许多其他类中访问它。我知道该函数运行了多少次,所以我可以将它们保存在一个数组中,但我不知道有多少个 int 被加载或可能被加载

所以指针子不需要有名字,因为它们将被存储在一个数组中以供以后使用。我只是希望能够多次创建全局变量并从数组中访问它们。

4

8 回答 8

2

答案是不。您必须为变量分配内存。

函数(返回值)应该分配内存,或者你的调用者函数。

但是您尝试做的甚至不适合 C 语法。

于 2012-11-06T13:03:08.760 回答
0

假设,有办法做到这一点,

不使用名称如何访问变量?

甚至指针也是“命名指针变量”:-)

于 2012-11-06T13:06:49.863 回答
0

不,C 标准(显然你的编译器也是如此)不支持没有名称的变量。当你声明一个指针时,你也必须给它一个名字。
好吧,你想在那里做的,合理的是,在堆中创建一个变量,然后通过一个带有名称的指针访问它:

float * const ptr = malloc(sizeof(float));

就是这样,所以给你。

于 2012-11-06T13:04:48.707 回答
0

除了动态分配的对象(使用 malloc 创建)之外,还支持 C99 复合文字。

例如下面的结构

char **foo = (char *[]) { "x", "y", "z" };

或出于您的目的

float *ptr = (float[]){5};

构造一个数组,实际上你只有指向它的指针,而没有对象名本身。

于 2012-11-06T13:08:25.447 回答
0

好吧,您可以从堆中分配新内存malloc(),并在其中存储东西。这可能是您想要的,然后该函数可以返回指针并将其交给其他函数。当不再需要数据时,应使用 取消分配free()

于 2012-11-06T13:02:10.837 回答
0

简单回答是不!那你为什么要做这种愚蠢的事情呢?

于 2012-11-06T13:02:18.403 回答
0

不,您可以发明一个您不使用的名称:

 float myFloatINTERNAL_DONTUSE;
 float * const myFloat = &myFloatINTERNAL_DONTUSE;

但是为了什么?只需声明一个普通的局部变量并&在需要其地址时使用运算符。

于 2012-11-06T13:03:50.397 回答
0

是的你可以。

float* p = malloc(sizeof(*p)); 

您拥有一个命名的指针变量p,但它指向的对象没有名称。以后别忘free了回忆。

于 2012-11-06T13:03:50.437 回答