void func(char a, int num)
{
printf("%c",a);
}
int main()
{
func("a", 6); //not func('a',6);
printf("\n");
func("b", 2); //not func('b',6);
}
我知道我正在传递一个带有空字符的 a 和 b 的 char 数组\0
。有人可以最终打印字符$
吗&
?
void func(char a, int num)
{
printf("%c",a);
}
int main()
{
func("a", 6); //not func('a',6);
printf("\n");
func("b", 2); //not func('b',6);
}
我知道我正在传递一个带有空字符的 a 和 b 的 char 数组\0
。有人可以最终打印字符$
吗&
?
它最终可能会打印几乎任何东西,可能是"a"
和"b"
的 ascii 代码匹配的地址$
的一部分&
。
您正在传递指向文字字符串的指针,但func
需要一个字符。更改它以接收数组:
void func(char *a, int num)
{
printf("%c",a[0]); // also note that to print a char you need to
// 'select' a char from the array
}
否则,您最终将打印到一个字符,该字符是地址a
作为第一个字节的任何内容的 ascii 表示。