我现在正在学习 C 中的字符串。
怎么来用scanf来获取你可以做的字符串
scanf("%s",str1);
而对于 printf 你可以做
printf("The string is %s\n", str1);
我知道对于scanf,这是因为字符串只是一个字符数组,它是一个指针,但是对于printf,您怎么可以像输入int或float一样输入变量名?
scanf
需要读取变量的地址,并且字符串缓冲区已经表示为地址(指向内存中某个位置的指针,或分解为指针的数组)。
printf
做同样的事情,将%s
其视为指向字符串的指针。
在 C 中,作为数组的变量在用作函数参数时成为指向数组第一个元素的指针——因此您的 scanf() 看到的是指向内存的指针(假设“str1”是一个数组)。
在您的 printf() 中,“str1”可以是指向字符串或字符数组的指针(在这种情况下,printf() 看到的参数将是指向数组第一个元素的指针)。