首页 > 其他分享 >复习C语言

复习C语言

时间:2022-11-11 23:46:10浏览次数:50  
标签:复习 int scanf C语言 see printf 缓冲区 main

1. scanf的原理

#include <stdio.h>
//scanf的特点:
//scanf会卡住,是因为标准输入缓冲区是空的,他会等着你输入
int main(){
    int a;
    scanf("%d",&a);
    printf("a=%d\n",a);//把标准缓冲区的整型数读走了
//    stdin 代表标准输入缓冲区
    fflush(stdin);//清空标准输入缓冲区
    char c;
//    scanf("%c",&c);
//    printf("c=%c\n",c);//为什么这里没有卡住.因为有一个\n 实际上是由两个,写了一个,系统自带一个
    //如何解决?
//    用fflush


    return 0;
}
直接看上面一段代码
就比如说
有一天你遇见了这样的一段代码

int a;
scanf("%d",&a);
printf("a=%d\n",a);//把标准缓冲区的整型数读走了
char c;
// scanf("%c",&c);
// printf("c=%c\n",c);//为什么这里没有卡住.因为有一个\n 实际上是由两个,写了一个,系统自带一个

实际上上面这段代码运行的时候,是读取不到下面的float的,然后C语言又带一个\n

之前没有接触过,现在觉得还是要系统的学习

2.运算符容易犯的错误

比如下面这一段代码,判断一个数0<=x<=8.如果是的话,就输出yes,否则输出no

#incllude <stdio.h>
int main()
{
  int x;
  scanf("%d",&x);
  if(0<=x<=8)//经典的错误。标准的零分
//上面这个属于数学上的,如果计算机读取的话是,先读取0<=x这一部分,然后如果0<=x这一部分成立的话,假设现在x=5是成立的,那么这整个表达式为真,即为1;
//然后计算机会进行第二步计算,1<=8,那就肯定为真,最后打印yes但这样是不对的,
//因为就算一开始你输入了一个9,那么第一部分的表达式也为1,那第二步仍然成立,所以谨记这样连着写不对!!!!
    {
      printf("yes");
    }
  else{
    printf("no");
    }
  return 0;
}
####3.逻辑与 和 逻辑或 短路运算
看下面的这段代码

include <stdio.h>

int main() {
int i=0;
i&&printf("you can see me\n");//当i为假时,不会执行逻辑与后的表达式,称为短路运算。
i=1;
i||printf("you can see me too\n");
return 0;
}

//上面的代码等价于下面这段

#include <stdio.h>

int main() {
    int i=0;
    if(i)
    printf("you can see me\n");
    return 0;
}

上面格式乱了,好久没用过markdown真的好乱啊。就先这样吧,仅供我自己看。

`

标签:复习,int,scanf,C语言,see,printf,缓冲区,main
From: https://www.cnblogs.com/missSherry/p/16882448.html

相关文章

  • C语言必背18个经典程序
    C语言必背18个经典程序1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/#include"stdio.h"main(){inti,j,result;for(i=1;i<10;i++){for(j=1;j<10;j++){......
  • C语言 函数05 函数的声明
    函数声明1、告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。2、函数的声明一般出现在函数的使用之前。要满足先声明后使用。3......
  • C语言 函数03 函数的调用
    传值调用函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。传址调用传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。这种传参方......
  • 初识C语言3
    前言承接上文,我们继续学习1.关键字static上一篇博客我们讲解到static修饰局部变量,现在我们讲解一下static修饰全局变量1.1static修饰全局变量源文件1intg_val=2022;源文......
  • C语言 指针及动态内存分配
    大一学《计算系统基础》的时候,没有讲这一块的内容,导致后面遇到指针就头疼,今天特来梳理一下这块的内容。1.变量的类型类型的语言,即要求定义变量的时候必须制定类型,然后编译器......
  • C语言基础知识应用·
    一开始由算法开始,毕竟你以前学的算法和c有所不同然后开始学程序流程控制接着学内存处理机制提高深入编程然后与其他软件如sqlweb联系起来学习后面的看你自己需要......
  • C语言常用的代码
    C语言经常需要发明各种轮子,为方便以后能够把精力放在应用逻辑上而不在发明轮子上,把一些常用的代码片段列于此。首先是字符串处理方面的,strcpy 函数容易越界,习惯使用 strn......
  • 每日一学 之 一起来复习 Git 的那些操作(一)
    LZ-Says:突然间闯进来,感觉,她,变成了整个世界。前言曾经,Svn俗称小王八,伴随着走过了一年又一年。某年Git的横空出世,以迅雷不及掩耳之势强势登顶。也使用了Git将近快一年......
  • C语言学习笔记---sizeof关键字和strlen函数
    sizeof和strlen在C语言中常用来计算字符大小和长度,在应用中却有着本质的区别。 sizeof是C语言中的关键字,其作用是返回一个对象或类型所占的内存字节数。使用方式为:int......
  • C语言 函数02 自定义函数的参数
    实际参数(实参):真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。形......