飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2120|回复: 0

[C/C++] C语言--学习笔记--第六课

[复制链接]
  • TA的每日心情

    2019-4-15 08:38
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2017-4-30 13:19:47 | 显示全部楼层 |阅读模式
    [C] 纯文本查看 复制代码
    先有逻辑在有代码;========================================
    main()
    {
            int i = 0;
    
            i = i++ + ++i + ++i + 10;
    
            printf("i = %d",i);
    }
    这段代码可以视作不可读代码,逻辑不清楚,在不同的平台或编译器下结果不同!
    
    程序 = 人的逻辑 + 计算机语言描述
    ==============================================================
    main()
    {
            int i = 5;
            if( i )
            {
                    printf("5 \n");
            }
    }
    
    在计算机的世界里只有0和1(非0既是1),所以if(i)系统也会执行;
    ===================================================================
    main()
    {
            int a[5];
            int i = 0;
    
            for(; i < 5 ;)
            {
                    printf("%d ",a[i]);
                    i++;
            }
    }
    申请五个空间如果没有赋初值的话,空间里面是随机的数据;
    main()
    {
            int a[5] = {0};
            int i = 0;
    
            for(; i < 5 ;i++);
            {
                    printf("i = %d\n",i);
                    printf("%d ",*(a+i));
    
            }
    }
    输出的结果
    i = 5
    -26
    这句int a[5] = {0};先把申请的五个空间的初始值都赋值为0;for();语句后面加了;号,这时候i的值为5,*(a+i)已经指向第六个单元地址的内容了,这个程序已经出问题了,但是编译器不会报错。
    ======================================================================
    main()
    {
            int a[5];
            int i = 0;
    
            for(; i < 5 ;)
            {
                    scanf("%d",a+i);
                    i++;
            }
            for(i = 0; i < 5; i++)
            {
                    if((!(a[i]%4) && (a[i]%100)) || !(a[i]%400))
                    {
                            break;
                    }             
            }
            if( i < 5)
            {
                    printf("leap year!");
            }
            else
            {
                    printf("No!");
            }
    }
    
    break;这个语句用法是在循环语句当中,当达到满足条件既跳出循环;
    
    输入5个数,判断这5个数里哪些是润年。scanf("%d",a+i); 默认的输入5个数的时候,输入完每个数都加一个空格,这个代码属于正常显示;如果scanf("%d ",a+i); %d后面要是多加一个空格,输入每个数的时候也都加空格,但是在回车显示的时候,需要多输入一个非0的字符才可以显示结果;等于号: ==  ;不等于号: !=  ;
    =================================================================================
    
    搭建简便的TC环境
    
    ==============================================================================
    
    main()
    {
            printf("%d",0x41);
    }
    
    (开始介绍ASCII码表)
    
    在内存存入0x41十六进制的41,按十进制%d读取为65,也可以按关系对应表%c读取为A;%u按无符号格式输出;
    
    ==============================================================================
    临时作业题
    
    main()
    {
            int i = 0;
            int j ;
    
            scanf("%d",&i);
    
            if(i < 5)
            {
                    i = 5;
            }
            if(i > 10)
            {
                    i =10;
            }
            if(!(i%3))
            {
                    i = i+1;
            }
    
            printf("i = %d\n",i);
            printf("@>");
            for(j = 0;j < i;j++ )
            {
    
                    if(!(j%2))
                    {
                            printf("*");
                    }
                    else
                    {
                            printf("#");
                    }
            }
            printf("=-");
    }
    

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表