assigning value to arguments while recursion





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







-1















I have a small doubt in this recursion
when will called in main for first time the value of p will be -1
say when first recursive call will be made to dfs(2,3)(let u=2,v=3)
then will 3 be converted to -1 automatically ? or (2,3) will be passed
as it is and -1 will be for only first recursive call



void dfs(int v, int p = -1) {
par[v] = p;
for (int u : G[v]) {
if (u == p) continue;

f[u] += f[v];
printf("%d",f[u]);
dfs(u, v);
}
}









share|improve this question




















  • 1





    If you call dfs with two arguments, both will be set to v and p respectively. No default value if you pass two arguments.

    – Matthieu Brucher
    Nov 23 '18 at 17:15


















-1















I have a small doubt in this recursion
when will called in main for first time the value of p will be -1
say when first recursive call will be made to dfs(2,3)(let u=2,v=3)
then will 3 be converted to -1 automatically ? or (2,3) will be passed
as it is and -1 will be for only first recursive call



void dfs(int v, int p = -1) {
par[v] = p;
for (int u : G[v]) {
if (u == p) continue;

f[u] += f[v];
printf("%d",f[u]);
dfs(u, v);
}
}









share|improve this question




















  • 1





    If you call dfs with two arguments, both will be set to v and p respectively. No default value if you pass two arguments.

    – Matthieu Brucher
    Nov 23 '18 at 17:15














-1












-1








-1








I have a small doubt in this recursion
when will called in main for first time the value of p will be -1
say when first recursive call will be made to dfs(2,3)(let u=2,v=3)
then will 3 be converted to -1 automatically ? or (2,3) will be passed
as it is and -1 will be for only first recursive call



void dfs(int v, int p = -1) {
par[v] = p;
for (int u : G[v]) {
if (u == p) continue;

f[u] += f[v];
printf("%d",f[u]);
dfs(u, v);
}
}









share|improve this question
















I have a small doubt in this recursion
when will called in main for first time the value of p will be -1
say when first recursive call will be made to dfs(2,3)(let u=2,v=3)
then will 3 be converted to -1 automatically ? or (2,3) will be passed
as it is and -1 will be for only first recursive call



void dfs(int v, int p = -1) {
par[v] = p;
for (int u : G[v]) {
if (u == p) continue;

f[u] += f[v];
printf("%d",f[u]);
dfs(u, v);
}
}






c++ recursion






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 '18 at 17:08









πάντα ῥεῖ

74.1k1077144




74.1k1077144










asked Nov 23 '18 at 17:07







user10628441















  • 1





    If you call dfs with two arguments, both will be set to v and p respectively. No default value if you pass two arguments.

    – Matthieu Brucher
    Nov 23 '18 at 17:15














  • 1





    If you call dfs with two arguments, both will be set to v and p respectively. No default value if you pass two arguments.

    – Matthieu Brucher
    Nov 23 '18 at 17:15








1




1





If you call dfs with two arguments, both will be set to v and p respectively. No default value if you pass two arguments.

– Matthieu Brucher
Nov 23 '18 at 17:15





If you call dfs with two arguments, both will be set to v and p respectively. No default value if you pass two arguments.

– Matthieu Brucher
Nov 23 '18 at 17:15












1 Answer
1






active

oldest

votes


















1














In void dfs(int v, int p = -1), -1 is the default value.



so when you write



dfs(42);


it is in fact



dfs(42, -1);


but if you provide argument, default value is not used.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53450620%2fassigning-value-to-arguments-while-recursion%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown
























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    In void dfs(int v, int p = -1), -1 is the default value.



    so when you write



    dfs(42);


    it is in fact



    dfs(42, -1);


    but if you provide argument, default value is not used.






    share|improve this answer




























      1














      In void dfs(int v, int p = -1), -1 is the default value.



      so when you write



      dfs(42);


      it is in fact



      dfs(42, -1);


      but if you provide argument, default value is not used.






      share|improve this answer


























        1












        1








        1







        In void dfs(int v, int p = -1), -1 is the default value.



        so when you write



        dfs(42);


        it is in fact



        dfs(42, -1);


        but if you provide argument, default value is not used.






        share|improve this answer













        In void dfs(int v, int p = -1), -1 is the default value.



        so when you write



        dfs(42);


        it is in fact



        dfs(42, -1);


        but if you provide argument, default value is not used.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 23 '18 at 17:16









        Jarod42Jarod42

        120k12104189




        120k12104189
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53450620%2fassigning-value-to-arguments-while-recursion%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            If I really need a card on my start hand, how many mulligans make sense? [duplicate]

            Alcedinidae

            Can an atomic nucleus contain both particles and antiparticles? [duplicate]