随笔分类 -  C语言基础知识

摘要:今天发现一篇关于fopen 打开模式的文章,觉得写得非常好,特转载之: 原文链接:https://www.cnblogs.com/kangjianwei101/p/5220021.html C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 阅读全文
posted @ 2023-05-06 10:01 夜行过客 阅读(718) 评论(0) 推荐(1) 编辑
摘要:二级指针的作用用处特别大!!! 首先主要在数据结构之中当改变指针的时候就需要通过改变指针的指针的值来改变! 在数据结构中用处很广.最普遍的比如说链表,通过调用函数改变了链表中的元素,那么整个链表就发生了变化,这种情况下就会用到二级指针,因为链表的起始是通过指向头结点的指针来执行的,所以必须要改变这个 阅读全文
posted @ 2020-11-06 11:32 夜行过客 阅读(3294) 评论(1) 推荐(1) 编辑
摘要:头文件:#include <stdio.h> sscanf()函数用于从字符串中读取指定格式的数据,其原型如下: int sscanf (char *str, char * format [, argument, ...]); 【参数】参数str为要读取数据的字符串;format为用户指定的格式;a 阅读全文
posted @ 2020-10-26 17:52 夜行过客 阅读(6573) 评论(0) 推荐(0) 编辑
摘要:fscanf() 和 fprintf() 函数与前面使用的 scanf() 和 printf() 功能相似,都是格式化读写函数,两者的区别在于 fscanf() 和 fprintf() 的读写对象不是键盘和显示器,而是磁盘文件。 这两个函数的原型为: int fscanf ( FILE *fp, c 阅读全文
posted @ 2020-10-26 16:59 夜行过客 阅读(2221) 评论(0) 推荐(1) 编辑
摘要:任何C语言的编译过程可分为以下三部分: 一.预编译 在C语言中,以#开头的语句又叫预编译指令。预编译主要做以下两件事情: 1.将#include包含的头文件做简单的文本替换; 2.将代码中的注释删除。 gcc -E 参数代表预编译。以test.c函数为例,内容如下: 进行预编译: 如上图,编译完成后 阅读全文
posted @ 2017-03-30 10:54 夜行过客 阅读(507) 评论(0) 推荐(0) 编辑
摘要:一.文件操作 读文件的顺序: 1.先打开文件 2.读写文件 3.关闭文件 1.1 fopen r 以只读方式打开文件,该文件必须存在,文件必须是可读的。 r+ 以可读写方式打开文件,该文件必须存在。 rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。 rw+ 读写打开一个文本文件,允许读和 阅读全文
posted @ 2017-03-27 21:09 夜行过客 阅读(13102) 评论(0) 推荐(0) 编辑
摘要:一.结构体 1.1 结构体struct定义及初始化 执行结果: 1.2 结构体的内存对齐 编译器在编译一个结构的时候总是采用内存对齐模式,结构体总是以最大的成员作为对齐单位,以偶数位对齐。 如果结构体的所有成员都是同一种类型,那么这个结构体在内存和数组的存放方式是一样的。 执行结果: 内存对齐示意图 阅读全文
posted @ 2017-03-08 15:22 夜行过客 阅读(554) 评论(0) 推荐(0) 编辑
摘要:一.内存布局 1.1 代码区 代码区code,程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,也叫代码段。代码区是可读不可写的。 代码区中的所有的内容在程序加载到内存的时候就确定了,运行期间不可以修改,只可以执行。 1.2 静态区 静态区是程序加载到内存的时候就确定了,程序退出的时候 阅读全文
posted @ 2017-03-03 10:47 夜行过客 阅读(323) 评论(0) 推荐(0) 编辑
摘要:一个C语言变量的作用域可以是代码块 作用域,函数作用域或者文件作用域。 不推荐写法 int a; // 出现了语法的二义性,可能是声明也可能是定义,所以最好定义完成之后声明 void func(); // 出现了语法的二义性,可能有参数,也可能没参数 推荐写法(严谨写法) int a = 0; // 阅读全文
posted @ 2017-03-01 13:54 夜行过客 阅读(724) 评论(0) 推荐(0) 编辑
摘要:一.指针的相关概念 1.1 指针变量 指针是一个变量,存放的是一个地址,该地址指向一块内存空间。 例: int a = 10; int *p = &a; // 定义一个指针变量p,&符号可以取得一个变量在内存当前中的地址。 *p = 5; // 修改指针所指的内存数据为5 1.2 无类型指针 定义一 阅读全文
posted @ 2017-02-07 14:54 夜行过客 阅读(482) 评论(0) 推荐(1) 编辑
摘要:一.头文件的使用 如果把main函数放在第一个文件中,而把自定义函数放在第二个文件中,那么就需要在第一个文件中声明函数原型。如果把函数原型包含在一个头文件里,那么就不必每次使用函数的时候都声明其原型了。把函数声明放入头文件是很好的习惯。 二.#include 与 #define的意义 #includ 阅读全文
posted @ 2017-02-07 09:58 夜行过客 阅读(459) 评论(0) 推荐(0) 编辑
摘要:一. 递归的定义 函数可以调用自己,这就叫函数的递归。 先序递归和后序递归 例1:求第n个人的岁数 有n个人排成一队,问第n个人多少岁,他回答比前面一个人大2岁,再问前面一个人多少岁,他回答比前面一个人大2岁,一直问到最后问第一个人,他回答10岁 例2:将十进制数转化为二进制数 例3:斐波那契数列 阅读全文
posted @ 2017-02-06 16:39 夜行过客 阅读(516) 评论(0) 推荐(0) 编辑
摘要:一. 函数的原型和调用 在使用函数前必须定义或者声明函数。 二. 函数的形参和实参 在调用函数的时候,函数大多数都有参数,主调函数和被调用函数之间需要传递数据。 在定义函数时函数名后面括弧中的变量名称为“形式参数”,简称形参。在调用函数时,函数名后面括号中的变量或表达式称为“实际参数”,简称实参。 阅读全文
posted @ 2017-02-06 10:27 夜行过客 阅读(404) 评论(0) 推荐(0) 编辑
摘要:1. int scanf(const char *format, ...) 说明:scanf用于通过控制台输入字符串。 注意: (1).通过scanf()函数输入的字符串,系统会自动在其后面补一个0,scanf默认回车和空格都是代表输入完成,这样会导致无法输入一个完整的字符串。 (2).scanf( 阅读全文
posted @ 2017-01-18 17:00 夜行过客 阅读(714) 评论(0) 推荐(0) 编辑
摘要:一. rand() rand是一个C语言库函数,功能是生成一个随机数。rand需要一个不同的种子,才能生成不同的随机数。 二. srand(int seed) rand需要一个不同的种子,才能生成不同的随机数。 三. time() 为了保证每次值都不一样,最简便的办法就是取系统时间 unsigned 阅读全文
posted @ 2017-01-06 10:54 夜行过客 阅读(812) 评论(0) 推荐(0) 编辑
摘要:一.数组的定义 数组就是在内存中连续的相同类型的变量空间。 二.数组在内存中的存储方式 同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的,数组名是一个地址的常量,代表数组中首元素的地址。 三.数组的初始化 3.1 一维数组初始化 注意: 在C语言中,数组未初始化就使用是极 阅读全文
posted @ 2017-01-04 10:15 夜行过客 阅读(726) 评论(0) 推荐(0) 编辑
摘要:1.字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 2.printf函数,putchar函数 putchar输出一个char printf是输出一个字符串 printf格式字符 字符 对应数据类型 含义 d int 接受整数值并将它表示为有符号的十进制整数 hd 阅读全文
posted @ 2017-01-03 09:49 夜行过客 阅读(1465) 评论(0) 推荐(0) 编辑
摘要:1 const const是定义一个常量 2 volatile 代表定义一个变量,这个变量值可能在CPU指令之外被改变 volatile int a;//定义了一个volatile类型的int变量 通过volatile定义的变量,编译器不会自作聪明的去优化这个变量相关的代码 int a = 10; 阅读全文
posted @ 2016-12-30 10:16 夜行过客 阅读(471) 评论(0) 推荐(0) 编辑
摘要:1.定义方式 3.14这个就是一个浮点常量,3f是一个浮点类型的常量 float a;//定义了一个浮点类型的小数变量,名字叫a double b;//定义了一个double类型的变量,名字叫b long double c;//定义了一个long double类型的变量,名字叫c 2.printf输 阅读全文
posted @ 2016-12-30 09:56 夜行过客 阅读(2813) 评论(0) 推荐(0) 编辑
摘要:1. char常量、变量 使用单引号‘’引起来的就是char的常量 ‘a’是一个char类型的常量 “a”是一个字符串类型的常量 1是一个int型的常量 ‘1’是一个char型的常量 char a; //定义了一个变量,类型是char,名字叫a char在内存中占用1个字节,c语言中没有BYTE类型 阅读全文
posted @ 2016-12-30 09:35 夜行过客 阅读(1201) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示