zoukankan      html  css  js  c++  java
  • int 变量的默认初始值

    int 变量的默认初始值为0

    这可以写个小程序测试下:

    #include <stdio.h>
    int main()
    {
        int i;
        if (i == 0) {
            printf("Hola, mundo, i = %d
    ", i);
        }
        return 0;
    }

    运行结果为:

    Hola, mundo, i = 0

    可见int i虽求对i赋值,但是默认值为0;

    同理下面的问题,就迎刃而解了:

    #include <stdio.h>
    void func(int a, int b, int c)
    {
        c = a * b;
    }
    
    int main()
    {
        int c;
        func(2,3,c);
        printf("c = %d
    ", c);
        return 0;
    }

    运行结果却为0。

    如果真想得到6,有两种解决方法,

    一是添加return 语句,代码如下:

    #include <stdio.h>
    int func(int a, int b, int c) //void 改为int,因为需要return value了
    {
        c = a * b;
        return c; //添加return语句
    }
    
    int main()
    {
        int c;
        printf("c = %d
    ", func(2,3,c)); //func移动printf里面来
        return 0;
    }

    或者更简洁点:

    #include <stdio.h>
    int func(int a, int b)
    {
        int c = a * b;
        return c;
    }
    
    int main()
    {
        printf("c = %d
    ", func(2,3));
        return 0;
    }

    二是引入指针变量(本题的原意)

    #include <stdio.h>
    void func(int a, int b, int* c) //这里定义指针变量c,将c指向main函数中int c的地址
    {
        *c = a * b;
    }
    
    int main()
    {
        int c;
        func(2,3,&c); //把int c的地址交给func函数中的指针变量c
        printf("c = %d
    ", c);
        return 0;
    }
  • 相关阅读:
    清北学堂 清北-Day1-R1-Count
    清北学堂 清北-Day1-R2-监听monitor
    LuoGu P2420 让我们异或吧
    Milk(sort+结构体)
    开门人和关门人(结构体+sort)
    python-神奇的下划线
    python-pathlib
    python-文本字符串
    python-闭包
    进制-Iterative-进制转换
  • 原文地址:https://www.cnblogs.com/profesor/p/12830165.html
Copyright © 2011-2022 走看看