我可以使用在数组范围之外声明为局部变量的数组的值吗?

分析

假设以下简单代码:

int main(void){
  char *p;
  int i = 1;
  while(i){
    char str[] = "string";
    p = str;
    i = 0;
  }
  /* Can I use above string by using `p` in here? */
  return 0;
}

我声明了一个字符串(char数组)作为局部变量,仅在中有效while{}但是我将其数组地址保存到指针p该指针在outside之外也是有效的while{}可以while{}通过使用外部字符串p吗?

如果可以,为什么行得通?

吊床

可以while{}通过使用外部字符串p吗?

没有在的范围内while p指向的第一个字符str外面while没有str,因此没有p指向的有效存储位置

您可以通过staticstr声明中使用存储类说明符来达到预期的效果

static char str[] = "string";  

外面while你可以用p

printf("%s\n", p);  

这是因为static在整个程序执行过程中,块中声明的变量位于相同的存储位置。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对象可以使用在其类之外声明的全局变量吗?

来自分类Dev

可以在方法之外使用局部变量吗?

来自分类Dev

我可以声明局部变量不为null吗?

来自分类Dev

我可以使用在if语句JS之外的if语句内更改的变量值吗

来自分类Dev

我可以使用循环声明数组吗?

来自分类Dev

指针可以将局部变量的内存指向范围之外吗?

来自分类Dev

指针可以将局部变量的内存指向范围之外吗?

来自分类Dev

在声明范围之外使用局部变量;为什么这样做?

来自分类Dev

我可以在testCafe中使用局部变量吗?

来自分类Dev

使用未分配的局部变量数组

来自分类Dev

我可以使用__restrict声明的指针填充范围吗?

来自分类Dev

局部变量和函数在C中可以使用相同的名称吗?

来自分类Dev

您可以使用PyCharm的断点来更改局部变量吗?

来自分类Dev

从表中捕获值并在SQL函数中声明为局部变量

来自分类Dev

局部变量与数组访问

来自分类Dev

两个局部变量块可以互相调用吗?由于声明顺序引起的范围问题

来自分类Dev

声明前不能使用局部变量DateTime吗?

来自分类Dev

子函数中是否可以使用局部变量?

来自分类Dev

声明为__declspec(naked)的函数如何存储局部变量?

来自分类Dev

我可以将android:id声明为Android中的数组吗?

来自分类Dev

我可以仅将数组的特定元素声明为常量吗?(C / C ++ / Fortran)

来自分类Dev

我可以使用LINQ比较两个数组中的范围吗?

来自分类Dev

我可以使用循环变量或数组来减少我的代码吗

来自分类Dev

我可以使用在其自己的 XXX.Resources 中声明的资源吗?

来自分类Dev

将数组值分配给局部变量

来自分类Dev

“未使用局部变量SoundButton38的值”,但我想使用它吗?

来自分类Dev

在函数之外使用局部变量

来自分类Dev

在函数之外使用局部变量

来自分类Dev

我可以使用整数变量来定义数组长度吗?

Related 相关文章

  1. 1

    对象可以使用在其类之外声明的全局变量吗?

  2. 2

    可以在方法之外使用局部变量吗?

  3. 3

    我可以声明局部变量不为null吗?

  4. 4

    我可以使用在if语句JS之外的if语句内更改的变量值吗

  5. 5

    我可以使用循环声明数组吗?

  6. 6

    指针可以将局部变量的内存指向范围之外吗?

  7. 7

    指针可以将局部变量的内存指向范围之外吗?

  8. 8

    在声明范围之外使用局部变量;为什么这样做?

  9. 9

    我可以在testCafe中使用局部变量吗?

  10. 10

    使用未分配的局部变量数组

  11. 11

    我可以使用__restrict声明的指针填充范围吗?

  12. 12

    局部变量和函数在C中可以使用相同的名称吗?

  13. 13

    您可以使用PyCharm的断点来更改局部变量吗?

  14. 14

    从表中捕获值并在SQL函数中声明为局部变量

  15. 15

    局部变量与数组访问

  16. 16

    两个局部变量块可以互相调用吗?由于声明顺序引起的范围问题

  17. 17

    声明前不能使用局部变量DateTime吗?

  18. 18

    子函数中是否可以使用局部变量?

  19. 19

    声明为__declspec(naked)的函数如何存储局部变量?

  20. 20

    我可以将android:id声明为Android中的数组吗?

  21. 21

    我可以仅将数组的特定元素声明为常量吗?(C / C ++ / Fortran)

  22. 22

    我可以使用LINQ比较两个数组中的范围吗?

  23. 23

    我可以使用循环变量或数组来减少我的代码吗

  24. 24

    我可以使用在其自己的 XXX.Resources 中声明的资源吗?

  25. 25

    将数组值分配给局部变量

  26. 26

    “未使用局部变量SoundButton38的值”,但我想使用它吗?

  27. 27

    在函数之外使用局部变量

  28. 28

    在函数之外使用局部变量

  29. 29

    我可以使用整数变量来定义数组长度吗?

热门标签

归档