C语言基础知识部分总结一

一:字符数据的非格式化输入

  1. getchar():读取用户的按键信息,他的返回值是用户按键的ASCII码;工作原理:调用getchar时,程序等待从缓冲区中取出第一个字符(用户输入的字符存放在键盘缓冲区,直到用户按回车键为止);如果用户输入的不止一个字符,那么其他的字符将留在键盘缓冲区,等待后续的getchar调用来读取。也就是说后续的getchar不会等待用户输入,自动在键盘缓冲区中读取字符,所以说再使用getchar应该先clear。
     1 #include<stdio.h>
     2 #include<conio.h>
     3 
     4 void main() {
     5     char c1, c2;
     6     int a;
     7 
     8     c1 = getchar();
     9     c2 = getchar();
    10     scanf("%d", &a);
    11     printf("%c+%c+%d", c1, c2,a);
    12 }
  2. getc():从流文件stream中读取一个字符信息,他的返回值是所读字符的ASCII码;
  3. getche():和getchar的功能基本相同,但是区别就是,getche能够直接获取用户当前输入的键盘按键值,不会在缓冲区中取值。
  4. getch():和getche也是差不多相同的,区别就是getch是回显的,就是现实输入的字符。

数组的赋值方法

  1. 逐一赋值或者循环赋值
  2. 使用memset赋值,void *memset(void *s,char ch,unsigned n)。第一个参数表示赋值的数组名称;第二个参数表示赋值内容,第三个表示数组申请的空间大小。
    int a[10];
    memset(a,0,10*sizeof(int));
  3. 使用memcpy赋值:void *memcpy(void *d,void *s,unsigned n);
    int a[5]={1,2,3,4,5},b[5];
    memcpy(b,a,5*sizeof(int));
    ps:使用memcpy和memset都需要将memory.h引入。

关于在有局部变量的地方使用全部变量的方法:在变量名前加::。

变量的存储类型

  1. auto:在函数内的定义:int i  <==> auto int i;
  2. extern:在函数外的全局定义:int  j<==> extern int  j;但是,extern不能定义在其他文件的全局静态变量。
  3. register:寄存器型;表示重复使用的变量使用register标识,可以减少内存开发。如for循环的控制条件 i;register i;
  4. static(静态型):static和extern是放在静态存储区的;auto和register是放在动态存储区的。static 在函数加载前就已经生成了,不赋值,会有默认值0,他的作用域根据作用的区域来判定。
原文地址:https://www.cnblogs.com/yangdagaoge/p/9777709.html