zoukankan      html  css  js  c++  java
  • 二:C语言复习基础--函数

    一:函数的声明和定义

    //1.函数声明(参数变量可省略)
    返回值类型 函数名(参数类型 参数,参数类型 参数,...);
    
    //2.函数定义
    返回值类型  函数名(参数类型 参数,参数类型 参数,...)
    {
        语句;
        return 返回值;
    }
    
    //3.参数类型存在隐式转换
    int fun(int c,int b)
    {
        printf("%d,%d
    ",c,b);
        double a=100.09;
        return a;
    }
    
    int main()
    {
        double a=fun(1.9,2.3);
        printf("%f",a);
    }

    二:main函数的始终

    1.main函数的三种形式

    //无参
    int main();
    
    //参数个数和参数列表
    int main(int argc,char *argv[]);
    
    //参数个数和参数列表、环境变量列表
    int main(int argc,char *argv[],char *envp[]);

    2.main函数原理

    C90标准中,规定了执行环境,对于没有操作系统的环境,入口地址是什么都可以。对于有操作系统的环境中,链接器会把main函数和另外的启动程序链接,而启动程序会引用你写的main函数
    
    #include
    <stdio.h> int print() { printf("helloworld"); return 0; } //编译参数:gcc test.c -e print nostartfiles //运行结果:helloworld

    三:可变参数与printf和scanf函数

    1.函数的可变参数

    //stdarg.h提供va-list数据类型和三个宏(va-start、va-arg和va-end)。实现函数可变参数:printf和scanf函数。
    
    #include<stdarg.h>
    #include<stdio.h>
    
    int my_print(const char *format,...)
    {
        char c=0;
        int value_num=0;
        
        va_list vp;
        va_start(vp,format);
        
        while(*format)
        {
            c=*format;
            switch(c)
            {
                case '%':
                {
                    char cc=*(++format);
                    switch(cc)
                    {
                        case 'd':
                        {
                            printf("%d",va_arg(vp,int));
                            value_num++;
                            break;
                        }
                        case 'f':
                        {
                            printf("%f",va_arg(vp,float));
                            value_num++;
                            break;
                        }
                        case 'l':
                        {
                            char *temp=format;
                            char ccs=*(++temp);
                            if(ccs=='f')
                            {
                                printf("%lf",va_arg(vp,double));
                                value_num++;
                            }
                            if(ccs=='d')
                            {
                                printf("%ld",va_arg(vp,long long int));
                                value_num++;
                            }
                            break;
                        }
                        case 'c':
                        {
                            putchar(va_arg(vp,char));
                            value_num++;
                            break;
                        }
                        case 's':
                        {
                            printf("%s",va_arg(vp,char*));
                            value_num++;
                            break;
                        }
                        default:
                        {
                            break;
                        }
                    }
                }
                default:
                {
                    printf("%c",c);
                    break;
                }
            }
            format++;
        }
        va_end(vp);
    }

    2.scanf函数和printf函数使用详解

    1.printf函数使用
    int printf(const char *format,...);
    
    //返回值:正确输出的字符总数,错误则返回负值,且输入输出流错误标志(ferror)
    //调用格式:printf("格式化字符串",输出列表); //格式化字符串:转义字符、字符串常量、格式控制字符串
    //%[flags][width][.prec][length]type
    //type:整形(%d),无符号8进制(%o),无符号10进制(%u),无符号16进制(%X),百分号(%%),单精度(%f),双精度(%lf),此前输出的字符数(%n),打印error内容(%m) //flags:左对齐(-),输出符号(+),(正值为空格负值加上负号)(空格),输出的前面补0(0) //printf实现是行缓冲,下面情况时会刷新缓冲区: //1.缓冲区填满 //2.遇到回车' '或换行' ' //3.调用fflush手动刷新缓冲区 //4.调用scanf要从输入缓冲区中读取数据,所以也会将输出缓冲区内容刷新
    2.scanf函数使用
  • 相关阅读:
    web接口调用
    UISegmentedControl
    CocoaPods安装和使用教程
    NSTimeInterval
    OC-NSString从文件中读取字符串
    XMPP(mac)方案二 ejabberd 服务器搭建 (转载)
    监听 IOS响应式编程框架ReactiveCocoa(RAC)使用示例(转载)
    iOS开发-文件管理
    OC中NSString 的常用方法 (转载)
    NSAttributedString
  • 原文地址:https://www.cnblogs.com/running-world/p/11572874.html
Copyright © 2011-2022 走看看