TOM 发表于 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;
      int i = 0;

      for(; i < 5 ;)
      {
                printf("%d ",a);
                i++;
      }
}
申请五个空间如果没有赋初值的话,空间里面是随机的数据;
main()
{
      int a = {0};
      int i = 0;

      for(; i < 5 ;i++);
      {
                printf("i = %d\n",i);
                printf("%d ",*(a+i));

      }
}
输出的结果
i = 5
-26
这句int a = {0};先把申请的五个空间的初始值都赋值为0;for();语句后面加了;号,这时候i的值为5,*(a+i)已经指向第六个单元地址的内容了,这个程序已经出问题了,但是编译器不会报错。
======================================================================
main()
{
      int a;
      int i = 0;

      for(; i < 5 ;)
      {
                scanf("%d",a+i);
                i++;
      }
      for(i = 0; i < 5; i++)
      {
                if((!(a%4) && (a%100)) || !(a%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("=-");
}

页: [1]
查看完整版本: C语言--学习笔记--第六课