【发布时间】:2017-05-10 19:21:24
【问题描述】:
我不知道在下面的 C 代码中是如何设置 firstname 和 lastname 变量的。
printf("Hello, %s, %s\n", firstname, lastname);
看起来 readln 函数的 char [s] 参数正在设置名字和姓氏。
这可能吗,如果可以,这叫什么,所以我可以做一些研究。
谢谢
编辑:下面是一个更简单的版本。参数好像是在设置变量。
int foo(char s[]){
s[0]='w';
s[1]='\0';
return 5;
}
int main() {
char name[2];
int wtf;
wtf = foo(name);
printf("%s\n", name);
}
参数 char s[] 为设置名称
#include <stdio.h>
#define STRLEN 5
int readln(char s[], int maxlen) {
char ch;
int i;
int chars_remain;
i = 0;
chars_remain = 1;
while (chars_remain) {
ch = getchar();
if ((ch == '\n') || (ch == EOF) ) {
chars_remain = 0;
} else if (i < maxlen - 1) {
s[i] = ch;
i++;
}
}
s[i] = '\0';
return i;
}
int main(int argc, char **argv) {
char firstname[STRLEN];
char lastname[STRLEN];
int len_firstname;
int len_lastname;
printf("Enter your first name:");
len_firstname = readln(firstname, STRLEN);
printf("Enter your last name:");
len_lastname = readln(lastname, STRLEN);
printf("Hello, %s, %s\n", firstname, lastname);
printf("Length of firstname = %d, lastname = %d", len_firstname, len_lastname);
}
【问题讨论】:
-
通过引用传递?
标签: c function parameters