我试图理解的c代码的一部分?

时间:2014-09-01 07:41:13

标签: c algorithm

我们有以下部分代码。我们使用了链表。我有以下问题。

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)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~是什么意思?

5 个答案:

答案 0 :(得分:1)

  • Now what does return do in this case?

    如果pNULL,则返回只会从函数返回。

  • 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->rp->firstnamep->lastname

代码中的

意味着p不是结构,而是指向结构的指针。

通常使用(.)点表示法访问结构元素, 但是在指向结构的指针的情况下,您需要->

答案 4 :(得分:0)

[1]返回退出该功能并且不打印任何内容,因为没有任何内容可供打印。

[2] printf是一个允许你打印不同格式的函数:整数,字符串......当%d表示整数将以字符打印,%S表示字符串等。你的情况:

首先%d将在结构p

中打印整数r的字符

第二个%s将在结构p中的firstname中打印字符串,

第三个%s将打印结构p

中的姓氏

[3]关于~~~~符号:这将打印一种行来分隔您可能打印的下一页打印的文本。

希望这有帮助。