zoukankan      html  css  js  c++  java
  • c trans

    #define BUFSIZE 100
    
    char buf[BUFSIZE];
    int bufp = 0;
    
    int getch(void)
    {
        return (bufp > 0)? buf[--bufp] : getchar();
    }
    
    void ungetch(int c)
    {
         if(bufp >= BUFSIZE)
             printf("ungetch: too many characters
    ");
         else
             buf[bufp++] = c;
    }
    
    #include<stdio.h>
    
    int main()
    {
        printf("%c %c", getch(), getch());
    }
    形如-->printf("%c %c", getch(), getch()); 
    ----整型数会被强制转化为对应的字符(ascii)输出。
    而-->
    return (bufp > 0)? buf[--bufp] : getchar();
    中,由getchar()所读入的字符也会转化为相应的整形数 作为 getch()函数的返回值。
    ungetch(int c)函数也是同理,参数是整型,但是允许输入字符,自动转化为对应整型数。
    #include<stdio.h>
    
    int main()
    {
        char c;
        
        c = 97;
        printf("%c", c);
    }

    上面的代码可以正常运行,输出结果是 a

    所以 当读入一个超大整数 到buf 时会怎么样呢?
  • 相关阅读:
    Redis面试题
    redis基本操作
    pwd命令和cd命令
    ls命令详解
    Python时间操作所相关
    Nginx
    网络相关知识
    LeetCode 刷题记录(6-10题)
    绕过校园网Web认证
    Java相关知识
  • 原文地址:https://www.cnblogs.com/xkxf/p/6139206.html
Copyright © 2011-2022 走看看