C语言
小鼠2021
heloo
展开
-
函数与指针的关系与应用
作为函数参数的指针void Swap(int *a , int *b){ int tmp = *a ; *a = *b; *b = temp ;}// 解引用:在使用指针时对指针对象执行操作的方法在C语言中函数只能传递参数,使用参数指针,可以大大增加我们精确控制传递参数的能力;除此之外,只传递一个指针而不是一个数据的完整副本可以大大地节省内存空间但是需要在函数中解引用按引用调用的参数作为函数参数指向指针的指针// 链表的移除函数定义int ListRemoNext(LIST *l原创 2020-12-10 11:54:32 · 140 阅读 · 0 评论 -
指针基础
存储空间的分配指针变量的大小通常与编译器的设定以及某些特定的类型界定符有关当声明一个指针时,仅仅为指针本身分配了空间,并没有为指针所引用的数据分配空间数据分配空间的两种方式:直接声明变量;动态分配存储空间(malloc,realloc)数据结构设计理念:由用户来管理存储空间以及与存储空间相关的实际的数据结构,而数据结构自身只用于维护数据内部变量的存储空间分配意义:一种数据结构的实现并不依赖于它所储存的数据的类型和大小;多个数据结构能够以单独的数据形态表现数据集合结构(结构体,联合体,原创 2020-12-10 11:12:23 · 78 阅读 · 0 评论 -
C语言命名规范
概述关于C语言的命名方式有很多,也没有一种明确的规定,所以我就总结自己的C语言命名规范。命名变量: 骆驼命名法 , 例如:numData ;函数: 帕斯卡命名法,例如:DisplayData;宏定义:较短的变量全部大写:MAX,MIN,NUM ; 否则,下划线命名法,例如:list_data类名,结构体,枚举,联合体:全部大写,例如:PERSON,STU常见缩写全称缩写释义valueval值additionadd加subtractionsub原创 2020-12-09 16:25:36 · 3524 阅读 · 0 评论 -
共用体(联合体)类型
共用体数据类型是指将不同的数据项组织为一个整体,它和结构体有些相似之处,但是共用体在内存中占用首地址相同的一段存储单元。共用体的定义与声明1. 共用体的一般定义形式union typename{ type1 var1 ; type2 var2; ... typen varn; };声明共用体数据类型变量有以下几种方式:// 先定义共用体,再声明共用体变量union myTest{ int i; char ch ; double d;};myTest my_u ; /原创 2020-11-15 21:45:13 · 1421 阅读 · 0 评论 -
枚举类型
枚举类型枚举类型的声明枚举类型的一般形式 // 声明语法 enum typename { var_list } // 举例enum weekDay{ Sunday , Monday , Tuesday , Wednesday , Thursday , Friday , Saturday };带赋值的枚举类型声明形式// 声明语法enum typename{ var1 = int_var1, var2 = int_var2, ... varn = int_var原创 2020-11-15 10:29:11 · 112 阅读 · 0 评论 -
C语言中的存储类别,作用域和生存周期
介绍变量和函数都有两个属性:数据类型和存储类别,存储类别的不同则它们的作用域和生存期均有所差别四种存储方式auto一般定义的变量没有直接默认为auto类型,函数执行时分配空间,函数结束时自动释放。static定义的变量在函数结束后不释放,对静态局部变量在编译时只赋值一次,第二次执行赋值语句时不再重新赋值,但是其他函数也无法使用该静态变量。编译时将变量分配在静态存储区。extern声明外部变量,外部变量即全局变量,它的作用域是从变量的定义出开始,到程序文件的结尾。编译时将变量分配在静态存储区。原创 2020-11-13 22:52:29 · 220 阅读 · 0 评论 -
关于PC机大小端模式的总结
大小端模式的由来在计算机系统中以字节为单位,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节存储和使用的问题。因此就出现了大端存储模式和小端存储模式。例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为原创 2020-08-19 15:42:54 · 551 阅读 · 0 评论 -
关于文件结束标志EOF和feof用法总结
EOF定义#define EOF (-1)用法在文本文件中,由于ASCⅡ码没有不会出现-1值,因此可以用来作为文本文件的标志结束feof定义#define _IOEOF 0x0010#define feof(_stream) ((_stream)->_flag & _IOEOF)用法在二进制文件中,采用feof宏进行判断feof可以判断二进制文件也可以判断文本文件如果遇到文件结束符,feof返回值是16,否则为0注意事项文本文件的位置指针是由其中的结构体成员原创 2020-08-18 18:07:31 · 1604 阅读 · 0 评论 -
关于文件相关的函数总结
fopen()FILE *fopen( const char *fname , const char *mode)// fname 要打开的文件名// mode 指示文件的打开模式// fopen()返回值类型是文件类型指针fclose()int fclose( FILE *fp )// 文件关闭成功 , 则返回0,否则返回-1// fclose() 可以把缓冲区内的剩余数据输出到磁盘文件中// fclose() 并释放文件指针和相关的缓存区fputc()int fputc( in原创 2020-08-17 20:11:43 · 259 阅读 · 0 评论 -
关于文件和文件指针的总结
文件定义所谓文件,通常指的是存储在外表介质上的一组相关信息数据的集合。分类根据文件的读写方式随机文件 : 对这类文件中的数据读写是随机的,只要按照相关函数对所要读写的文件进行定位,也就是说:允许跳跃式地对所需的文件位置的数据进行处理。顺序文件: 对这类文件中的数据读写是按照顺序进行的,如果要对文件中某个位置的数据进行读写操作,就必须对它前面的数据进行操作,也就是说:不允许跳跃式地对所需的文件位置的数据进行处理。根据数据存放格式文本文件:将数据转换为相应的ASCⅡ码。(以5236为例:)原创 2020-08-16 22:41:11 · 1553 阅读 · 0 评论 -
关于c语言struct结构体详解
结构体定义struct tag // struct 关键字 , tag 结构体的标志{ member_list; // 结构体成员}variable_list; // 结构体声明的变量在结构体及其成员在结构体定义的时候不会分配内存空间,只有结构体变量才分配地址结构体不能进行强制转换,但结构体指针可以结构体定义形式struct stu{ char name[10]; int age ;};struct stu stu1 ; // 定义结构体变量struct原创 2020-08-08 23:36:09 · 1306 阅读 · 0 评论 -
关于printf()详解
printf格式化输出,即 print format头文件:<stdio.h>, 也可不用头文件语法格式:printf(“格式控制字符串”,输出表列)格式字符串格式:[标志][输出最少宽度][.精度][长度]类型格式字符串类型整型%d :以十进制形式输出带符号得整数,正数不输出符号%i :输出有符号十进制整数,效果同%d%u ; 输出无符号十进制整数%o %O : 输出八进制整数%x %X :输出十六进制整数浮点型%f %lf : 以小数形式输出单、双原创 2020-08-08 11:20:01 · 1238 阅读 · 0 评论 -
关于malloc,calloc,realloc使用的总结
malloc原型:void* malloc(unsigned int num_bytes)原创 2020-08-03 16:19:55 · 82 阅读 · 0 评论 -
关于pragma命令的使用
#pragma message(“prompt”)#include <stdio.h>int main(int argc , char *argv){ printf("hello world!\n"); #pragma message("hello c !") return 0 ;}在codebloks编译的结果为:-------------- Build: Debug in define_undef (compiler: GNU GCC Compiler)---------原创 2020-08-02 20:40:40 · 356 阅读 · 0 评论 -
关于C语言9种控制语句和34种运算符总结
控制语句if else 条件语句for 循环语句while 循环语句do while 循环语句continue 结束本次循环break 终止switch和循环swtch 多分枝选择语句goto 转向语句return 从函数返回语句运算符算术运算符(七种)用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)关系运算符(六种)用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小原创 2020-08-02 15:41:43 · 272 阅读 · 0 评论 -
关于C语言预处理及其相关命令总结
预处理命令字:用于表示一个预处理命令1.头文件的引用:include2.宏定义: define文件的包含方式1.#include “filename”2.#include < filename >这两种引用方式之间的区别就在于,在以< filename> 方式引用的时候,如果在windos环境下采用IDE(如:codebloks)进行编译,那么会先在系统头文件目录中查找,若查找失败,再到当前目录中查找,还查找不到则报错;如果在Linux 环境下采用 gcc 进行编译,那么原创 2020-08-02 08:49:46 · 165 阅读 · 0 评论 -
关于C语言关键字的总结
定义和声明的区别定义 :编译器创建对象,为它分配内存并起变量名/对象名声明:告知编译器,该变量名/对象名已匹配到具体的内存地址总结:定义即为变量/对象分配内存,声明不分配32个C语言关键字类型说明符:用于定义、说明变量、函数或其他数据结构的类型1.void :声明函数无返回值或者无参数,也可声明空指针类型2.int :声明整形变量3.short :声明短整形变量4.long :声明长整形变量5.signed :声明有符号类形变量6.unsigned :声原创 2020-08-01 15:54:52 · 202 阅读 · 0 评论