我们有以下部分代码。我们使用了链表。我有以下问题。
void printData (struct node* p) {
if (p == NULL)
return;
printf("%d - %s %s\n", p->r, p->firstname, p->lastname);
printf("\ne-Mail:\n-------\n");
printMail(p->email);
printf("\nTelephone:\n--------\n");
printNr(p->number);
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printData (p->next);
1)我知道我们已经创建了一个节点结构,其中p是一个指向node的变量指针。因为列表是初始为空的p == NULL,因为p指向任何地方。现在返回做什么呢?
2)printf("%d - %s %s\n", p->r, p->firstname, p->lastname);
注意:r是一个变量,存储搜索联系人的次数。我不明白%d - %s %s\n"
是什么意思?我研究过C而且我知道%d和%s是单独的意思但不是这样的?
p->r, p->firstname, p->lastname) .
为什么指针指向搜索联系人的次数,然后指向firstname,lastname?
3)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
是什么意思?
答案 0 :(得分:1)
Now what does return do in this case?
如果p
为NULL
,则返回只会从函数返回。
I dont understand what does %d - %s %s\n" mean ?
%d %s %s\n
用于打印结构变量,分别是p-> r,p-> firstname和p-> lastname。\n
用于换行。
What does ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mean?
这将只输出
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在屏幕上。
答案 1 :(得分:1)
(1)
现在返回的是什么?
它终止函数,返回给调用者而不继续执行函数的其余部分。
(2)
%d - %s%s \ n是什么意思?
你说你知道每个意味着什么,这只是一个字符串,首先包含一个整数,然后是破折号,然后是两个字符串和一个新行。 %d,%s中的每一个都在做它本来会做的事情。
p->r, p->firstname, p->lastname
部分表示将在相应的%d,%s,%s
中放置的内容 - 第一个%d
将替换为p->r
,第一个%s
将被替换为p->firstname
替换为%s
中的字符串,最后的p->lastname
将替换为printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
中的字符串。
(3)
是什么 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~是什么意思?
没什么,它只是要打印的字符串的一部分 - 没有合成方法。 这条线
{{1}}
只需在控制台上打印:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
答案 2 :(得分:0)
第二部分,见下文:
int a = 5;
int b = 10;
printf("%d - %d", a, b);
将生成输出:
5 - 10
答案 3 :(得分:0)
p->r
,p->firstname
,p->lastname
意味着p
不是结构,而是指向结构的指针。
通常使用(.
)点表示法访问结构元素,
但是在指向结构的指针的情况下,您需要->
答案 4 :(得分:0)
[1]返回退出该功能并且不打印任何内容,因为没有任何内容可供打印。
[2] printf是一个允许你打印不同格式的函数:整数,字符串......当%d表示整数将以字符打印,%S表示字符串等。你的情况:
首先%d将在结构p
中打印整数r的字符第二个%s将在结构p中的firstname中打印字符串,
第三个%s将打印结构p
中的姓氏[3]关于~~~~符号:这将打印一种行来分隔您可能打印的下一页打印的文本。
希望这有帮助。