美文网首页Programming
[C语言回顾]基础知识补充

[C语言回顾]基础知识补充

作者: 廓然寄畅 | 来源:发表于2020-03-22 05:08 被阅读0次

    数组

    • 只能存储一个所声明的数据类型的数值的变量称为原子变量(atomic variable)标量变量(scalar variable)
    • 一种可以存储获取数据的方法是使用数据结构(data structure)或者叫聚合数据类型(aggregate data type)
    • 数组(array)是最简单的数据结构
    一维数组
    • 由相同数据类型的单一项目组成的数组称为一维数组
    • C语言数组的开始索引值总是0,并且不能改变
    • C语言并不检查正在使用的索引数值(即边界检查).例如,使用超出声明数组长度的索引值,编译器不会通报这个错误
    数组初始化
    • 声明语句中没有给出特定的初始化,所有的数字数组元素都会被设置为0
    int distance[100]; //所有元素都为0
    
    • 当初始化数值包含在声明语句中时,数组的大小可以省略
    int gallons[ ] = {1,2,3,4,5}; 
    int gallons[6] = {1,2,3,4,5}; //两个数组是相等的
    
    • 初始化字符数组时,可以使用包含在双引号中的字符序列
    char codes[] = "sample";
    
    • 对于字符数组来说,最后一个字符为空字符(NULL),由C编译器自动地追加到所有的字符串后面用来标记一个字符串的结束;并且这个字符在内部存储代码数值上等于0(字符0在内部存储代码数值上等于48,因此两者不会被混淆)
    数组作为函数实参
    • 当数组作为函数实参传入函数时,只是将数组第一个元素的地址传入函数,并不会生成将实参数组复制给形参
    void findmax(int vals[]); //可选的函数首部行
    
    二维数组
    • 声明与初始化
    int val[3][4]; //二维数组声明
    int val[3][4] = { {1,2,3,4},
                            {5,6,7,8},
                            {9,10,11,12} }; //初始化,用多个括号分开
    int val[3][4] = { 1,2,3,4,
                            5,6,7,8,
                            9,10,11,12 }; //内部括号可以省略
    int val[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; //分行也不是必须的,但是是一种好的编程习惯
    

    字符串

    基础
    库函数
    输入数据验证
    格式化字符串

    数据文件

    声明,打开与关闭文件流
    • 文件流(file stream)是用于连接存储在物理设备上的文件到一个程序的单向传输路径;从一个文件接收数据到一个程序的文件流称为输入文件流(input file stream);发送(即写入)数据到一个文件的文件流称为输出文件流(output file stream)
    • 声明文件流是通过声明一个有FILE类型的变量名(指针)来实现的
    FILE *inFile; //一个例子
    
    • 打开文件流:打开函数称为fopen(),参数为文件的外部名,以及文件要被使用的模式;允许的模式有r,w或a,分别代表读、写或附加
    inFile = fopen("prices.bnd", "r"); //一个例子
    
    • 关闭文件流
    fclose(inFile);
    
    读取和写入文本文件
    • 写入
    fputc(c, filename) //把一个字符写入文件
    fputs(string, filename) //把一个字符串写入文件
    fprintf(filename, "format", args) //按照格式把一个参数的数值写入文件
    
    fgetc(filename) //从文件中读取一个字符
    fgets(stringname, n, filename) //从文件读取n-1个字符并把字符存储在给定的字符串名中
    fscanf(filename, "format", &args) //根据这个格式,从文件读取所列出的参数值
    
    • 我们目前使用的数据文件指针都是逻辑文件指针,也就是指向数据文件;C语言还支持物理文件指针,即指向一个硬件设备,例如键盘、显示器或打印机;例如在程序中遇到一个scanf()函数调用时,计算机自动转向标准输入文件也就是键盘来获得输入的内容;遇到一个printf()函数时,计算机将内容写入标准输出文件指派的设备,对于大多数系统而言是显示器
    • 从上,我们可以得知printf(),scanf()分别是fprintf(),fscanf()函数的特例
    fprintf(stdout, "Hello World");
    printf("Hello World"); //两个语句等价
    fscanf(stdin, "%d", &num);
    scanf("%d", &num); //两个语句等价
    
    随机文件访问
    传递和返回文件名
    写入和读取二进制文件

    相关文章

      网友评论

        本文标题:[C语言回顾]基础知识补充

        本文链接:https://www.haomeiwen.com/subject/mlyklqtx.html