gpt4 book ai didi

c - 诸如 "hello"之类的字符串实际上是 C 中单个字符的静态数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:22 24 4
gpt4 key购买 nike

字符串在 C 语言中如何成为静态数组。

#include <stdio.h>

void array();

int main() {
printf("first turn");
array();
array();
return 0;
}

void array() {
char a[] = "hello";
printf("this is at first call%c", a[1]);
a[1] = 'z';
}

两次调用 array() 的输出是相同的,那么我们如何将字符串调用为静态数组呢?

最佳答案

您引用的文本是在谈论字符串文字,例如此处 printf() 的参数:

printf("hello");

或用于初始化指针变量的字符串:

char *p = "hello";

在您的代码中,您声明了一个本地数组,并且字符串文字用于对其进行初始化。您的代码大致相当于:

char a[6];
strcpy(a, "hello");

strcpy() 的第二个参数将被静态分配,但 a 是函数的局部参数。

关于c - 诸如 "hello"之类的字符串实际上是 C 中单个字符的静态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50888732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com