函数

作者: jtsky | 来源:发表于2017-12-27 16:00 被阅读0次

    内置函数

    image.png
    image.png

    malloc|calloc(动态分配内存)

    区别:malloc一般需要强制转换,calloc不需要。calloc会默认初始化数组的每个值为0

       int *nums;
        //为指针动态分配20字节的空间 等价与int nums[5]
        nums = malloc(20);
        //nums = malloc(sizeof(int) *5);
       // nums= calloc(5, sizeof(int));
        for (int i = 0; i < 5; i++) {
            printf("请输入第%d个元素:", i + 1);
            scanf("%d", nums + i);
        }
    
        printf("我们手动输入的数组为:\n");
    
        for (int i = 0; i < 5; i++) {
            printf("%d \t", *(nums + i));
        }
        //回收内存 指针必须为初始化的指针 换句话说就是得重置到首地址否则会回收失败
        free(nums);
        nums = NULL;
    

    自定义函数

    自定义函数的完整写法:

    //定义函数原型
    int sum(int, int);
    int main() {
        int c = sum(3, 4);
        printf("%d",c);
        return 0;
    }
    //函数定义
    int sum(int a, int b) {
        return a + b;
    }
    

    注意:

    1.函数原型与函数定义的头部类似,最后以分号结尾。
    2.函数原型中的参数名称可以省略,只写参数类型。

    函数的形参与实参

    按值传递

    注意:函数的的实参是按值传递的,即实参会拷贝一份储存在方法栈上给形参进行操作。

    引用传递

    注意:引用传递的本质其实也是按值传递,只不过我们传递过去的对象的地址(指针中的值就是对象地址),所以在方法中修改了指定地址中说保存的内容的时候,会影响外部变量。

    相关文章

      网友评论

          本文标题:函数

          本文链接:https://www.haomeiwen.com/subject/oxjugxtx.html