重温c语言之,7天开整,就是任意的写写,第三天+第四天版 ...

打印 上一主题 下一主题

主题 549|帖子 549|积分 1647

一:指针

  1、关于指针的含义---大抵

  比方:int a=10;
     int* p=&a;
     这里的*,是说明p是指针变量,int 说明p是指向的对象是int类型的
     *p=20, 这里的*是解引用符,意思是通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象
  2、关于指针的大小

    指针变量的大小取决于地址存放所需要多大的空间
    32位呆板上面的地址:32bit----4字节,以是指针变量的大小是4字节
    64位呆板上面的地址:64bit----8字节,以是指针变量的大小是8字节
    比方:
  1.    int *p1;
  2.     char *p2;
  3.     float *p3;
  4.     double *p4;
  5.     printf("%zu\n", sizeof(int *));
  6.     printf("%zu\n", sizeof(char *));
  7.     printf("%zu\n", sizeof(float *));
  8.     printf("%zu\n", sizeof(double *));
复制代码
  效果就是:
    8
    8
    8
    8
  
二:关键字

  define-----预处理指令,不是关键字
三:循环

  1、if-else

  如果没有{}这个的话,else与最近的if举行匹配,比方:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int a = 0;
  5.     int b = 10;
  6.     if (a == 1)
  7.         printf("congratulations!");
  8.         if (b == 10)
  9.             printf("good");
  10.         else
  11.             printf("bad");
  12.     printf("");
  13.     return 0;
  14. }
复制代码
  效果是:good
  然而我想要的效果不是这个,以是需要一个大括号来举行相对应的匹配
  1. 1 #include <stdio.h>
  2. 2 int main()
  3. 3 {
  4. 4     int a = 0;
  5. 5     int b = 10;
  6. 6     if (a == 1)
  7. 7     {
  8. 8         printf("congratulations!");
  9. 9         if (b == 10)
  10. 10         {
  11. 11             printf("good");
  12. 12         }
  13. 13     }
  14. 14     else
  15. 15     {
  16. 16         printf("bad");
  17. 17     }
  18. 18     printf("");
  19. 19     return 0;
  20. 20 }
复制代码
  这次代码的效果就是我想要的:bad
  2、判断小提示

    建议需要用到判断的时间,能将数字放在左边,变量放在右边,比方:
  1. 1 if (1 == a)
  2. 2     {
  3. 3         printf("congratulations!");
  4. 4         if (10 == b)
  5. 5         {
  6. 6             printf("good");
  7. 7         }
  8. 8     }
复制代码
    当然了,我之前的代码就是不大好,没有这样做,如果粗心的话,少了一个等号啥的,就可以报错了(前提条件下:左边是变量)
  3、switch-case

    这个语句可以嵌套,一个break只能跳出当前的switch-case语句;如果没有break的话,会找到符合条件的case语句下面,之后一直运行,直到之后的全部运行完成
  4、字符的输入

    当盼望从键盘上面输入一个字符的时间,可以用到这个函数-----getchar()来举行输入,但是这个函数和库函数里面的scanf()函数差不多,这个两个函数在输入的时间,都需要把键盘里面的数据放入缓存区内部,就像下面图片的内容:
scanf()缓存区键盘
getchar()缓存区键盘
    这上面的表格就是,从键盘上面输入,进入缓存区,之后就是这两个可以从缓存区来获得数据,但是这两个获取数据的多少不大雷同,就比如下面的一个例子:
  1. 1 #include <stdio.h>
  2. 2 int main()
  3. 3 {
  4. 4     char passward[20] = {0};
  5. 5     printf("请输入密码:>");
  6. 6     scanf("%s", passward);
  7. 7
  8. 8     // getchar();//粗略的把换行符获得,只是单个单词/词语,如果想要一行的话,就会出现错误
  9. 9     int ch = 0;
  10. 10     while ((ch = getchar()) != '\n')
  11. 11     {
  12. 12         ;
  13. 13     }
  14. 14     /*
  15. 15     这里是每次循环都会从缓存区内取出下一个字符,并赋值给ch,循环体内是空字符,所以这个循环只有读取与丢弃,不做任何处理,直到这个循环遇到
  16. 16     换行符'\n',这个循环才会直接退出。原因是:这个无论是scanf还是getchar,都需要把从键盘里面获取的数据,放置到缓存区内,包括换行符而
  17. 17     getchar遇到换行符'\n',也会执行换行符的操作,所以,接下来的操作可能会受到影响,故希望运用一个东西来把这个问题给处理了,所以可以用到
  18. 18     while这个空循环
  19. 19      */
  20. 20     printf("请确认密码:Y/N:>");
  21. 21     char ret = getchar();
  22. 22     if ('Y' == ret)
  23. 23     {
  24. 24         printf("yes\n");
  25. 25     }
  26. 26     else
  27. 27     {
  28. 28         printf("no\n");
  29. 29     }
  30. 30
  31. 31     return 0;
  32. 32 }
复制代码
    注:这里的一些注释大概有些冗杂,见谅
 
 
 
 
最后,盼望lol能有个冠军,今年the shy回归,盼望能那个冠军下来,今天早上的blg努力了,但是奈何飞科的加里奥摧毁了全华班夺冠的盼望,破损了,感觉机会不是很大了,毕竟飞科都28了,但是加油呀,大家
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

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