天天看点

C语言考研复习小笔记

数据类型:

八进制数:一般以0开头;
    十六进制数:以0x开头;
    字符数据:单字符以char 定义,每个字母对应有ASCII码,小写字母比大写字母大32,A的ASCII码为65,字符的比较也是通过ascii的值来比较的;
    i+++j是i(++)+j,但是这是很不规范的做法。
           

输入输出

%d  整数              %ld长整型
%x 十六进制            %u无符号数
%f 浮点数             %o八进制
%c 字符               %e指数形式
%s 字符串
占n列取m位小数  %n.mf
scanf一般加&,遇到已经是地址的不加,比如指针,数组。
比如:
           
char str[];
    scanf("%s",str);//以空格判断输入结束
           
printf不加&;
           

逻辑控制

逻辑表达式自左向右求解(如果没有括号的话);
     do while 和while的使用关键是看while条件的初值是否是1,do while、while和for可以通用,for循环可以实现一切循环。for(t1;t2;t3)先执行t1,判断t2是否满足;是则执行内容否则退出;内容执行完后执行t3,再判断t2……。
     go to一般不适用。
           

数组

**一维数组定义:**
     char a[10]="asds";
     char a[10]={"asds"};
     char a[10]={'a','s','d','s'};
     这三者的定义是一样的,在他们后面加上\0也还是一样,编译器会自动在后面加上\0。但是\0没有占字符位置!
     上述这个字符数组a,可以存放的字符数是10个不是9个。
     strlen(a)=4; 实际的字符数
     sizeof(a)=10;数组总共可以容纳的字符数
     定义全0
     int a[10]={0};
  **二维数组的定义:**
     int a[3][3]={{1,2,3},{2,3,4},{3,4,5}};
     int a[3][3]={1,2,3,2,3,4,3,4,5};
     int a[][3]={1,2,3,2,3,4,3,4,5};
     这三个表达式一样。
     初始化原则,从左往右从上往下,少则补0.
           

字符串处理

puts(char*)输出一个字符串;
     gets(char*)输入一个字符串;//以回车判断输入结束
     strcat(char*,char*)将后一个字符串接到前一个的后面
     strcpy(char*,char*)将后一个字符串赋值到前一个字符串
     strncpy(char*,char*,n)将后面一个字符串的前面n个字符复制到前一个字符串
     strcmp(char*,char*)字符串比较函数
     strlen(char*)返回字符串的实际长度
     strlwr(char*)将字符串大写换小写
     strupr(char*)将字符串小写换大写
           

函数

被调函数在主调函数后需要声明
     在定义函数时定义的形参在未出现函数调用时是不占据内存空间的,只有被调用了以后才被分配内存单元,调用结束后内存单元被释放。
     函数调用时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元保留原值。
     一维数组做函数参数形式为  str[],数组名做参数时,不是传值,而是把首元素的地址传递给形参数组,即为两个数组占据一个内存。
     多维数组做函数参数形式为  str[][size],第一维的大小可以省略,但是第二维的不能省略。
 **变量的存储空间有:**
     程序区、静态存储区、动态存储区
     全部变量是存放在静态存储区中的,程序中绝大部分变量都是在动态存储区里的。
 **变量的存储类别有:**
      静态存储类、动态存储类
  具体有
     auto:自动变量,绝大部分局部变量均为自动变量。
     不赋初值时为一个不确定的值。
     static:静态变量声明,是静态存储类别,静态声明不是指变量值无法改变,而是指变量值被保存,不会被销毁,直到程序运行结束才销毁,比如局部函数中的静态变量每一次运行都被保存。
     静态局部变量不赋初值的话则默认为0或空字符。
     外部函数仍然无法引用局部静态变量。
     register:变量存放在寄存器中,当变量多次使用的时候可以增加运行效率。
     只有局部自动变量和形式参数才可以作为寄存器变量。
     数量有限,不能任意调用,对于不同的系统有不同的限制。
     局部静态变量不能声明为寄存器变量。
     extern:外部变量声明,从函数定义处开始一直到文件末尾。
     可以在多个文件中使用,在一个文件中定义,其余文件中声明。
     比如:  file1中为 int A;
            file2中为extern A;
           

继续阅读