• 多年前C语言学习笔记


    可能是大一刚刚接触编程,学习C语言记得一些批注。先发上来,日后可能会看一下。

    1. while ((ch = getchar() != ‘#’)) //单引号

    2. if (a[i] == ‘F’) //单引号

    3. int A[10], B[10]只能这的,不能int A[k], B[k]

    4. 用switch时,记得在每个case;后加break;

    5. 关于getchar:“总的来说,只要scanf个gets,之间必须getchar”
      前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误
      so在用了printf后用gets,在这之间要加getchar
      eg:

      scanf("%d", &a[i].number);
      getchar();
      gets(a[i].name);
      scanf("%d", &a[i].age);
      getchar();
      
      • 1
      • 2
      • 3
      • 4
      • 5
    6. puts自带\n

    7. 结构体……struct……{……}p; 下面的p a[10],必须写数字,不能先写个n,在用n带入

    8. printf()其实就是向stdout中输出,等同于fprintf(stdout,“****”)

    9. 数组的两种引用:1.int a[10] 用函数引用时find(a)
      2.int* a[10] 用函数引用时find(a[10])

    10. printf(“%5.2f”,x)就是“12.32”,注意小数点也算一位数长

    11. 当输入什么停止模板

      char str[100];
      char c;
      int i;
      scanf("%s", str);
      for (i = 0; (c = str[i]) != '#'; i++)
      {
       
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    12. 根号 sqrt()

    13. while和do-while的while一样

    14. strcmp:比较两个字符串是否相等,eg:char a[] = “abc”
      char b[] = “ABC”
      if( strcmp(a,b) == 0)……
      这比的是ASCll,字符串相等的话这个为0

    15. strlen只能测字符串长度 ,这个还有麻烦的地方,它只能strlen(a) > strlen(b)不能strlen(a) - strlen(b) > 0
      sizeof感觉啥也能,而且它的结果要比实际多1

    16. strcpy复制函数
      eg:
      char dest[50];
      char src[50] = {“shhshhs”};
      strcpy(dest, src);
      如果是单个字符世界用=赋值

    17. strcat连接函数 ,eg:

      char str[80] = {"hhhh "};
      strcpy(str, "these ");
      strcat(str, "strings ");
      strcat(str, "are ");
      strcat(str, "concatenated.");
      puts(str); 
      // 这个的结果是these strings……,没有hhhh,注意一下
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    18. char *a[]和char a[] 他们的存取方式不同,高阶内容

    19. 输入一个字符

      char str;
      // gets(str);
      // puts(str);
      scanf("%c", &str);
      printf("%c", str);
      // puts和gets不能用
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    20. 不能if(0 < a < b)这的写,分开写

    21. scanf里别用\n,人家本来就会控

    22. 注意区分字符串与数组,你想输出字符串的全部那就printf(“%s”, ch);如果你想输出其中的的一个字符那就printf(“%c”,ch[2])

    23. 输入字符串用scanf的话不加&

    24. 关于C指针:太复杂

    25. printf("dadas");
      getchar()            //printf一串字符后加个getchar()在scanf,前面printf是数字的话不用加
      sacnf("%d", a);
      
      • 1
      • 2
      • 3
  • 相关阅读:
    java毕业设计球迷信息交流论坛源码+lw文档+mybatis+系统+mysql数据库+调试
    以太坊若分叉 NFT也会“分叉”吗?
    Visual Studio 必备插件集合:AI 助力开发
    pointpillars pytorch的安装运行
    USRP 简介,对于NI软件无线电你所需要了解的一切
    中国传统节日春节网页HTML代码 春节大学生网页设计制作成品下载 学生网页课程设计期末作业下载 DW春节节日网页作业代码下载
    三部曲深剖C++类与对象——下篇
    Go :测试零长度结构(附完整源码)
    SQLite3 数据库学习(四):Qt 数据库基础操作
    剑指offer 47:礼物的最大价值
  • 原文地址:https://blog.csdn.net/Fishermen_sail/article/details/126279433