📅  最后修改于: 2023-12-03 15:21:24.800000             🧑  作者: Mango
在 C 语言中,char a
和 char a[1]
之间的区别是:
char a
定义了一个字符变量,占用一个字节的内存空间,可以存储一个 ASCII 字符或一个数字的字符表示。
char a[1]
定义了一个长度为 1 的字符数组,占用一个字节的内存空间,可以存储一个 ASCII 字符或一个数字的字符表示。与 char a
不同的是,char a[1]
可以用于函数参数,表示参数是一个指向字符数组的指针。
// char a
#include <stdio.h>
int main() {
char a = 'A'; // 定义一个字符变量
printf("%c\n", a); // 输出字符 A
return 0;
}
// char a[1]
#include <stdio.h>
void foo(char a[]) { // 参数为字符数组的指针
printf("%s\n", a); // 输出字符数组中的字符串
}
int main() {
char a[1] = {'A'}; // 定义一个长度为 1 的字符数组,初始化为 'A'
foo(a); // 调用 foo 函数,传递参数 a
return 0;
}
在第一个示例中,char a
定义了一个字符变量,可以直接使用 %c
输出其值。
在第二个示例中,char a[1]
定义了一个长度为 1 的字符数组,作为函数 foo
的参数。 在 main
函数中创建了一个字符数组 a
,用字符 'A' 初始化,并将其作为参数传递给 foo
函数。在 foo
函数中,使用 %s
输出字符数组中的字符串。