首页 > 其他分享 >重温c语言之,7天开整,就是随便的写写,第三天+第四天版

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

时间:2024-11-03 21:11:19浏览次数:3  
标签:10 缓存 int 重温 写写 printf 天开 指针 getchar

一:指针

  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字节

    例如:

   int *p1;
    char *p2;
    float *p3;
    double *p4;
    printf("%zu\n", sizeof(int *));
    printf("%zu\n", sizeof(char *));
    printf("%zu\n", sizeof(float *));
    printf("%zu\n", sizeof(double *));

  结果就是:

    8
    8
    8
    8

  

二:关键字

  define-----预处理指令,不是关键字

三:循环

  1、if-else

  如果没有{}这个的话,else与最近的if进行匹配,例如:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 10;
    if (a == 1)
        printf("congratulations!");
        if (b == 10)
            printf("good");
        else
            printf("bad");

    printf("");
    return 0;
}

  结果是:good

  然而我想要的结果不是这个,所以需要一个大括号来进行相对应的匹配

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int a = 0;
 5     int b = 10;
 6     if (a == 1)
 7     {
 8         printf("congratulations!");
 9         if (b == 10)
10         {
11             printf("good");
12         }
13     }
14     else
15     {
16         printf("bad");
17     }
18     printf("");
19     return 0;
20 }

  这次代码的结果就是我想要的:bad

  2、判断小提示

    建议需要用到判断的时候,能将数字放在左边,变量放在右边,例如:

1 if (1 == a)
2     {
3         printf("congratulations!");
4         if (10 == b)
5         {
6             printf("good");
7         }
8     }

    当然了,我之前的代码就是不大好,没有这样做,如果粗心的话,少了一个等号啥的,就可以报错了(前提条件下:左边是变量)

  3、switch-case

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

  4、字符的输入

    当希望从键盘上面输入一个字符的时候,可以用到这个函数-----getchar()来进行输入,但是这个函数和库函数里面的scanf()函数差不多,这个两个函数在输入的时候,都需要把键盘里面的数据放入缓存区内部,就像下面图片的内容:

scanf() 缓存区 键盘
getchar() 缓存区 键盘

    这上面的表格就是,从键盘上面输入,进入缓存区,之后就是这两个可以从缓存区来获得数据,但是这两个获取数据的多少不大相同,就比如下面的一个例子:

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char passward[20] = {0};
 5     printf("请输入密码:>");
 6     scanf("%s", passward);
 7 
 8     // getchar();//粗略的把换行符获得,只是单个单词/词语,如果想要一行的话,就会出现错误
 9     int ch = 0;
10     while ((ch = getchar()) != '\n')
11     {
12         ;
13     }
14     /*
15     这里是每次循环都会从缓存区内取出下一个字符,并赋值给ch,循环体内是空字符,所以这个循环只有读取与丢弃,不做任何处理,直到这个循环遇到
16     换行符'\n',这个循环才会直接退出。原因是:这个无论是scanf还是getchar,都需要把从键盘里面获取的数据,放置到缓存区内,包括换行符而
17     getchar遇到换行符'\n',也会执行换行符的操作,所以,接下来的操作可能会受到影响,故希望运用一个东西来把这个问题给处理了,所以可以用到
18     while这个空循环
19      */
20     printf("请确认密码:Y/N:>");
21     char ret = getchar();
22     if ('Y' == ret)
23     {
24         printf("yes\n");
25     }
26     else
27     {
28         printf("no\n");
29     }
30 
31     return 0;
32 }

    注:这里的一些注释可能有些冗杂,见谅

 

 

 

 

最后,希望lol能有个冠军,今年the shy回归,希望能那个冠军下来,今天早上的blg尽力了,但是奈何飞科的加里奥摧毁了全华班夺冠的希望,破损了,感觉机会不是很大了,毕竟飞科都28了,但是加油呀,大家

 

标签:10,缓存,int,重温,写写,printf,天开,指针,getchar
From: https://www.cnblogs.com/xiejinghao/p/18523212

相关文章

  • 重温c语言之,7天开整,就是随便的写写,第二天
    一:操作符除法:如果都是整数,除数,被除数都是整数,那么结果:就是整数的商(没有小数部分的),例如:7/2=3;如果除数或者被除数其中一个是浮点数,那么结果就是(条件是:能除尽的,并且小数在基础数据类型包含下的)完整的商(包含小数部分的):例如:7/2.0=3.500000;如果想要在pr......
  • 重温c语言之,7天开整,就是随便的写写,第一天
    一:转义字符\t是一个字符,在printf里面,只占一个位置;其他什么的抽象字符,用一个'\'+抽象字符就可以出现;\ddd这个是8进制的,可以转成10进制的,之后参考ASCLL码表即可二:枚举类型的函数与数组一样,有下标,都是从0开始的三:数组可以先不在【】这里面填写多少,但是需......
  • 基础图论重温
    最短路 https://www.luogu.com.cn/problem/B3647都是基于松弛更新最短路的,即:dis[u][v]=min(dis[u][v],dis[u][k]+dis[k][v]),其中u是起点,v是终点,k是u->v路径中的一点。记得考虑重边,自环的情况!!  Floyd 多源最短路,即求多个u->v的最短路,考虑dp转移即可。O(n^3),与n......
  • Python重温笔记
    1.Python解释器将Python代码翻译为二进制,交给计算机去运行。是Python.exe程序2.python中数字有四种类型整数、布尔型、浮点数和复数。即int型,bool(true与false),float,,a+bj的复数等变量不需要声明,但是在使用的时候需要提前赋值。print(变量名)输出变量值,也可以输出数字;prin......
  • 【重温童年】基于tkinter模块设计的Q宠大乐斗武器升星模拟器:重温经典,畅享休闲时光
    在快节奏的现代生活中,我们总是在寻找那些能够让我们暂时忘却烦恼,沉浸在简单快乐中的休闲方式。对于许多80后、90后而言,Q宠大乐斗无疑是一款充满回忆的经典网页游戏。它以其独特的宠物养成、战斗系统以及丰富多样的武器系统,吸引了无数玩家的心。今天,就让我们一起重温那段美好的......
  • 今天开周会重点说到上次那个项目被客户反馈,原因是很多需求被遗漏,我心里既自责,更多的是
            今天开周会了,重点说到上次那个项目被客户反馈了,原因是很多需求被遗漏,导致负责开发人员需要去客户那边完善,这样一来验收时间往后移动,间接导致我们下一个本身就时间紧迫的项目所剩时间又缩短一大截。老板重点强调了责任,开发人员没有按照需要一点一点对照实现,测试......
  • 从计组中从重温C中浮点数表示及C程序翻译过程
    目录移码​编辑 传统浮点表示格式浮点数的存储(ieee754)->修炼内功例子:  ​编辑浮点数取的过程  C程序翻译过程移码 传统浮点表示格式浮点数的存储(ieee754)->修炼内功根据国际标准IEEE(电⽓和电⼦⼯程协会) 32位例子:  64位  IEEE754对有效......
  • 如果从今天开始,一个月时间能成为黑客吗?
    前言如果从今天开始,一个月时间能成为黑客吗?很多人可能都有这样的问题。成为黑客是一个很复杂的过程,你需要拥有扎实的理论基础、丰富的实践经验和敏锐的安全意识。资深黑客告诉你,如果一个月时间想成为上能黑企业、下能黑个人的黑客,几乎是不可能的。但如果是指成为一名能唬......
  • 今天开始学习 虚幻五 下载安装 创建第一个项目
    首先需要下载EpicGames(这不是一个和steam类似的游戏平台吗?) 在这里实现下载下面需配置vs 选择C++游戏开发勾选上UnrealEngine安装程序和支持预览 打开编译器 选择游戏第三人称游戏C++项目位置和项目名称必须是英文不能包含中文这样就创建好了第一个项目......
  • 前端太卷了,不玩了,写写node.js全栈涨工资,赶紧学起来吧!!!!!
    前端太卷了,不玩了,写写node.js全栈涨工资,赶紧学起来吧!!!!!首先聊下node.js的优缺点和应用场景Node.js的优点和应用场景Node.js作为后端开发的选择具有许多优点,以下是其中一些:高性能:Node.js采用了事件驱动、非阻塞I/O模型,使得它能够处理大量并发请求而不会阻塞线程,从而具有出色......