• C语言难点1之输入输出,链接,字符串操作


    C语言难点1之输入输出,链接,字符串操作

      最近发现写了一段时间的C之后,还是有一些点并没有很好的get,我就想总结出来,写个系列博客,自己也好好的整理一下思路。这个系列主要出自三本书:《C专家编程》,《C陷阱和缺陷》,《C和指针》。有兴趣的同学可以好好看一下这几本书,对于打好C语言的基础是个非常不错的几本书。

    1 一些输入输出的格式
    对应的printf();和scanf()函数;在这里我给出常用的scanf格式码,和printf()函数也是一样的。
     
     
     
    2 getchar()函数的使用;
    getchar()函数从标准输入读取一个字符并返回它的值。如果输入中不再存在任何字符,函数就会返回常量EOF(在stdio.h中定义),用于提示文件的结尾。
     
         getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了。
         实际上是 输入设备->内存缓冲区->程序getchar  。
         你按的键是放进缓冲区了,然后供程序getchar  你有没有试过按住很多键然后等一会儿会滴滴滴滴响,就是缓冲区满了,你后头按的键没有存进缓冲区.  键盘输入的字符都存到缓冲区内,一旦键入回车,getchar就进入缓冲区读取字符,一次只返回第一个字符作为getchar函数的值,如果有循环或足够多的getchar语句,就会依次读出缓冲区内的所有字符直到' '.要理解这一点,之所以你输入的一系列字符被依次读出来,是因为循环的作用使得反复利用getchar在缓冲区里读取字符,而不是getchar可以读取多个字符,事实上getchar每次只能读取一个字符.如果需要取消' '的影响,可以用getchar();来清除,这里getchar();只是取得了' '但是并没有赋给任何字符变量,所以不会有影响,相当于清除了这个字符.还要注意的是这里你在键盘上输入ssss看到的回显正是来自于getchar的作用,如果用getch就看不到你输入了什么.
     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int test;
     6     while((test=getchar())!=EOF &&test!='
    ')
     7     {
     8         printf("%d
    ", test);
     9     }
    10     return 0;
    11 }

    3 一些指针的声明
    我之前一直好奇
    int *a  和 int* a到底是怎么回事?
     
         其实这两个声明具有一样的意思,都是声明一个指向整型的指针变量a。但是后者并不是一个好的方法,因为在声明几个变量的时候容易出错。比如 int* a,b,c;实际上你只是想把a声明为指针变量。
    4 链接属性
    在变量的作用域中,我们要注意范围,而链接属性遇着息息相关。

    5 2维数组作为参数的问题
         2维数组作为参数在很多地方都会用到,但是这个问题非常容易出错。
    注意作为参数的时候必须要指定第二个维度的大小。例如a[][10]这样可以作为参数;
    但是如果是这样的:a[][].就不能作为形参。
     
     
    6 字符串长度
     
         在库函数中有一个strlen函数用来得到字符串的长度,但是在使用的时候要注意,否则很容易出错;下面举例来说明:
    7 字符分类
     
    就是库函数中包括一些字符的函数,可以很方便的对字符进行一些基本的操作。

    相关联的是一些内存操作,功能类似,但是更加强大。

     

     
    8 &和&&,|和||的区别
     
         &是按位运算符;都是与运算。
         &&是逻辑运算符;
          |是按位运算符;都是或运算。
         ||是逻辑或算符;
    9 符号的细节。
     
    在使用多字符符号的时候,注意空格的存在,不能再多字符符号中乱留空格,会造成意思完全改变

     

  • 相关阅读:
    My Eclipse
    那一夜,我被梦中笑醒的事之(数据库)
    KTV项目总结
    欢迎来到,数据库联盟!
    学习手工创建表,表关系以及用exists 来查询
    sql 将Null 值转化成空字符串
    jquery toggle
    推荐一个不错的配色网站
    css之zindex
    关于前后端分离与不分离
  • 原文地址:https://www.cnblogs.com/tao-alex/p/5982544.html
Copyright © 2020-2023  润新知