可以通过仅以一个指针作为参数的函数内部的c数组运行吗?

约瑟夫

我正在使用C进行游戏和学习,创建了一个数组,并将数组及其大小传递给一个函数,这样我就可以遍历该数组并打印其所有元素(因此我给了函数两个参数:数组本身及其数组尺寸)。

但是现在我喜欢通过将一个参数传递给函数来完成所有操作。我通过使用指针使其工作了一点,但是我不知道如何停止,因为我没有有关数组长度的任何信息,它仅在下面的代码中有效,因为我将数组长度放在了for循环内。但是,如果我不知道大小并且仅将一个参数传递给函数,那通常如何工作?

我认为也许可以通过某种方式意识到指针是否指向我当前正在使用的数组之外,但这是否可行?:S

void printArray(int *p){
    for(int i=0; i<4; i++){
        printf("%d ", *(p+i));
    }
}

int main(){
    int myArray[4] = {8,4,1,1};
    int *p = myArray;
    printArray(p);
    return 0;
}
马克·本宁菲尔德

遍历没有长度参数的指向数组的唯一方法是,如果数组包含不同的终止符值。

例如,C字符串是“以NULL终止”的char数组您可以遍历a,char*因为您知道要测试'\0'字符的存在,该字符的整数值为0。

由于它适用于您问题中的代码,因此可以使用-1作为终止符值,如下所示:

void printArray(int *p){
  while (*p != -1{
    printf("%d ", *p++);
  }
}

但是请注意,这样做需要某种方式将有效值解释int为“无效”。

从根本上讲,只需将数组的长度传递给函数就容易得多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C:是否可能有一个将函数指针数组作为其参数之一的递归函数?

来自分类Dev

如何在 C++ 中声明一个通过引用将数组作为参数的函数?

来自分类Dev

为什么不能使用指针的指针作为参数来声明一个函数接收数组的指针

来自分类Dev

将指向一个C函数的指针作为另一个函数的参数传递

来自分类Dev

将char数组作为参数传递给C会变成一个指针

来自分类Dev

Slurm可以将3台单独的计算机作为一个“节点”运行吗?

来自分类Dev

指针数组作为c函数中的参数

来自分类Dev

传递一个返回数组作为参数的函数

来自分类Dev

修改函数内的指针(将另一个指针作为参数传递)

来自分类Dev

编写一个函数,该函数将指向任何函数的指针作为参数

来自分类Dev

如何在 C 中传递一个二维数组作为函数的参数?

来自分类Dev

如何将在函数内部创建的变量作为另一个函数的指针传递

来自分类Dev

如何定义一个函数,该函数接收一个指针作为参数并返回一个指向该参数的子代之一的指针?

来自分类Dev

为什么 C++ 不能单独从函数指针原型推导出模板类型参数,而不是作为一个包?

来自分类Dev

我可以使用返回值作为参数多次运行同一个函数吗?

来自分类Dev

如何制作一个将任意函数指针作为参数的函数?

来自分类Dev

多值DWORD枚举作为一个函数参数C ++

来自分类Dev

通过传递一个空数组作为第二个参数,使用“useEffect”钩子只运行一次代码,但是 ESLint 抱怨空数组

来自分类Dev

是否可以将C ++指针分配给Python对象的属性,然后在另一个C ++函数中将其作为C ++指针检索?

来自分类Dev

向 pthread 传递以另一个函数指针作为参数的函数指针时出现段错误

来自分类Dev

使用数组作为参数仅通过第一个元素(JSON RPC)调用PHP中的另一个函数

来自分类Dev

将对象指针作为成员函数的第一个参数传递:这是标准的吗?

来自分类Java

我可以通过一个循环的参数到一个构造函数

来自分类Dev

MongoDB C#创建一个函数,我可以将类型/类名作为参数传递给它

来自分类Dev

是否可以创建一个可以接受 UIView 或 UIButton 作为参数的通用函数?

来自分类Dev

以指针作为参数的C ++函数,并通过swig接口处理

来自分类Dev

如何转发声明一个函数,该函数将指向函数的指针作为参数?

来自分类Dev

在Swift中是否可以将一个函数作为另一个函数的参数来调用?

来自分类Dev

在Go中是否可以有一个指向带参数的成员函数/方法的指针?

Related 相关文章

  1. 1

    C:是否可能有一个将函数指针数组作为其参数之一的递归函数?

  2. 2

    如何在 C++ 中声明一个通过引用将数组作为参数的函数?

  3. 3

    为什么不能使用指针的指针作为参数来声明一个函数接收数组的指针

  4. 4

    将指向一个C函数的指针作为另一个函数的参数传递

  5. 5

    将char数组作为参数传递给C会变成一个指针

  6. 6

    Slurm可以将3台单独的计算机作为一个“节点”运行吗?

  7. 7

    指针数组作为c函数中的参数

  8. 8

    传递一个返回数组作为参数的函数

  9. 9

    修改函数内的指针(将另一个指针作为参数传递)

  10. 10

    编写一个函数,该函数将指向任何函数的指针作为参数

  11. 11

    如何在 C 中传递一个二维数组作为函数的参数?

  12. 12

    如何将在函数内部创建的变量作为另一个函数的指针传递

  13. 13

    如何定义一个函数,该函数接收一个指针作为参数并返回一个指向该参数的子代之一的指针?

  14. 14

    为什么 C++ 不能单独从函数指针原型推导出模板类型参数,而不是作为一个包?

  15. 15

    我可以使用返回值作为参数多次运行同一个函数吗?

  16. 16

    如何制作一个将任意函数指针作为参数的函数?

  17. 17

    多值DWORD枚举作为一个函数参数C ++

  18. 18

    通过传递一个空数组作为第二个参数,使用“useEffect”钩子只运行一次代码,但是 ESLint 抱怨空数组

  19. 19

    是否可以将C ++指针分配给Python对象的属性,然后在另一个C ++函数中将其作为C ++指针检索?

  20. 20

    向 pthread 传递以另一个函数指针作为参数的函数指针时出现段错误

  21. 21

    使用数组作为参数仅通过第一个元素(JSON RPC)调用PHP中的另一个函数

  22. 22

    将对象指针作为成员函数的第一个参数传递:这是标准的吗?

  23. 23

    我可以通过一个循环的参数到一个构造函数

  24. 24

    MongoDB C#创建一个函数,我可以将类型/类名作为参数传递给它

  25. 25

    是否可以创建一个可以接受 UIView 或 UIButton 作为参数的通用函数?

  26. 26

    以指针作为参数的C ++函数,并通过swig接口处理

  27. 27

    如何转发声明一个函数,该函数将指向函数的指针作为参数?

  28. 28

    在Swift中是否可以将一个函数作为另一个函数的参数来调用?

  29. 29

    在Go中是否可以有一个指向带参数的成员函数/方法的指针?

热门标签

归档