Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.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编程:删除存储在数组中的特定值 让我们考虑一个数组,如int A(25); 稍后,在一些循环的帮助下,我开始将用户输入存储在此数组中_C_Arrays - Fatal编程技术网

C编程:删除存储在数组中的特定值 让我们考虑一个数组,如int A(25); 稍后,在一些循环的帮助下,我开始将用户输入存储在此数组中

C编程:删除存储在数组中的特定值 让我们考虑一个数组,如int A(25); 稍后,在一些循环的帮助下,我开始将用户输入存储在此数组中,c,arrays,C,Arrays,在某个时间点,如果用户选择删除他刚从数组中输入的值 我如何才能为我的程序的用户做到这一点 我可以将其设为0,但0也是他可以输入的值;所以我只想将它设为NULL或使用一些垃圾值,就像我初始化数组时一样 你不能 如果你定义 int a[25]; 那么a由25个int元素组成。每个元素在为其赋值后都会保留该值,直到重新赋值或数组不再存在为止。不能从数组中删除值。整数和指针没有特殊的空值 您可以选择一个表示空元素(可能是INT_MIN)的特殊值,但是您将无法将该值存储为数据。或者,您可以使用另一个数据

在某个时间点,如果用户选择删除他刚从数组中输入的值

我如何才能为我的程序的用户做到这一点

我可以将其设为0,但0也是他可以输入的值;所以我只想将它设为NULL或使用一些垃圾值,就像我初始化数组时一样

你不能

如果你定义

int a[25];
那么a由25个int元素组成。每个元素在为其赋值后都会保留该值,直到重新赋值或数组不再存在为止。不能从数组中删除值。整数和指针没有特殊的空值


您可以选择一个表示空元素(可能是INT_MIN)的特殊值,但是您将无法将该值存储为数据。或者,您可以使用另一个数据结构(可能是bool数组)来跟踪数组中每个元素的当前值是否有效。

您不能从数组中删除元素。在C语言中,数组存储为一个连续的内存块,所以不能只删除一个元素。您可以使用以下任一选项:

使用一些未使用的值(如-1)将元素标记为已删除。 使用单独的数组跟踪已删除的元素。 使用链表存储元素推荐选项。
将其设置为0与任何其他垃圾值一样好。C中的数组存储为连续的内存块,因此不能仅删除元素。Use link list.NULL在谈到整数时等于0。您需要实现某种类型的计数器。@colecomeron:NULL可以定义为0或void*0。NULL专门用作NULL指针常量。不应将其视为整数值。@KeithThompson:我知道,但在他的问题的上下文中,他想将NULL赋值给整数。我要指出的是,这在功能上与他表示希望避免的0场景没有任何不同。