- 博客(14)
- 收藏
- 关注
原创 动态内存管理
动态内存函数malloc函数void *malloc(size_t size);这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。注意:void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型
2022-04-11 17:39:06 128
原创 C文件操作
在程序设计中,一般说的文件有两种:程序文件、数据文件。程序文件包括源程序文件(后缀为.c)目标文件(windows环境后缀为.obj)可执行程序(windows环境后缀 为.exe)数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。文件缓冲区ANSIC 标准采用“缓冲文件系统”处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓
2022-04-11 16:09:20 159
原创 输入 & 输出
C 输入 & 输出当需要输入时,C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。当要输出时,C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。C 语言把所有的设备都当作文件,以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕。Stdin 标准输入Stdout 标准输出Stderr 标准错误C 语言中的 I/O (输入/输出) 通常使用 printf() 和 scanf() 两个函数
2022-04-11 15:17:51 134
原创 自定义类型
enum枚举枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。它是一种用户定义的数据类型,它用关键字enum以如下语法来声明:enum 枚举类型名字,{名字0,…,名字n};第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1 (这个是可以自定义成员值的)。在C 语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的枚举也是一种数据类型,所以它和基本数据类型一样也可以对变量进行声明,枚举也可以用typedef关键字将枚举
2022-03-13 16:05:41 800
原创 C语言中的宏
宏define宏定义以#号开头的都是编译预处理指令,而它们不是C语言的成分。#define用来定义一个宏,程序在预处理阶段将用define定义的来将内容进行了替换。不带参数的宏:#define< 名字 >< 值 >带参数的宏: 像函数的宏 「#define 宏名」(形参表)字符串宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令。一些常用的宏定义- 使用一些宏跟踪
2022-03-13 15:10:32 4539
原创 C语言指针
指针操作系统将硬件和软件结合起来,给程序员提供的一种对内存使用的抽象,这种抽象机制使得程序使用的是虚拟存储器,而不是直接操作和使用真实存在的物理存储器。所有的虚拟地址形成的集合就是虚拟地址空间。内存是一个很大的线性的字节数组,每个字节固定由 8 个二进制位组成,每个字节都有唯一的编号,一个 4G 的内存,他一共有 4x1024x1024x1024 = 4294967296 个字节,那么它的地址范围就是 0 ~ 4294967296 ,十六进制表示就是 0x00000000~0xFFFFFFFF,当程序使
2022-03-11 20:30:30 654
原创 C语言基础4
数组数据类型 数组名称[长度];获取数组元素:数组名称[元素所对应下标];数组的下标均以0开始; 数组在初始化的时候,数组内元素的个数不能大于声明的数组长度;初始化数组时元素个数小于数组的长度时,多余的数组元素初始化为0;在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。数组的遍历数组就可以采用循环的方式将每个元素遍历出。避免出现数组越界访问,循环变量最好不要超出数组的长度。C语言
2022-03-11 14:48:29 837
原创 C语言基础3
函数C语言提供了大量的库函数: 比如stdio.h提供输出函数.自定义函数的一般形式:[函数类型说明] 函数名称 ([函数参数]){执行代码块;return (表达式);}自定义函数尽量放在 main 函数之前,如果要放在main函数后面的话, 需要在main函数之前先声明自定义函数,声明格式为:[数据类型说明] 函数名称([参数]);函数调用我们需要用到自定义的函数的时候,就得调用它,那么在调用的时候就称之为函数调用。函数名([参数]);对无参函数调用的时候可以将[]包含的省略;
2022-03-11 10:31:54 861
原创 C语言基础2
运算符号C语言中运算符:算术运算符 + - * / % ++ –除法运算中注意 如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如10/3 = 3;而两数中有一个为小数,结果则为小数,如:10.0/2 = 5.000000。 取余运算中注意:该运算只适合用两个整数进行取余运算,如:10%3 = 1; 运算后的符号取决于被模数的符号:如(-10)%3 = -1;而10%(-3) = 1;赋值运算符关系运算符逻辑运算符与运算 &&
2022-03-10 16:42:41 175
原创 C语言基础
C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言入门简单来说,一个C程序就是由若干头文件和函数组成。#include<stdio.h> //包含头文件int main()//主函数{ printf("Hello World"); return 0; }#include <stdio.h>就是一条预处理命令,作用是通知C语言编译系
2022-03-10 15:10:04 49
原创 C++函数重载
C++函数重载在程序中,一个函数就是一个操作的名字,正是靠类似的自然语言各种各样的名字,才能写出易于理解和修改的程序。通常,自然语言中一个词可以代表许多种不同的含义,需要依据上下文来确定,这就是所谓的一词多义,反映到程序中就是重载。C++提供了对函数重载的支持,使我们在编程时可以对不同的功能赋予相同的函数名,编译时会根据实参的个数和类型来确定使用哪一具体的功能。两个以上函数具有相同的别名,但是形参的类型或者个数不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。
2021-12-08 16:37:30 453
原创 C++内联函数
函数调用也会降低程序的执行效率,增加时间和空间上的开销,因此对于一些功能简单,规模较小又使用频繁的函数,可以设计为内联函数。内联函数不是在调用时发生控制转移,而是在函数体嵌入在每一个调用处。可以节省参数传递,控制转移的开销。内联函数的定义与普通函数一样,只需要加上关键字inline,语法形式如下:Inline 类型说明符 函数名(含类型说明的形参表){语句序列}注意,inline关键字只是一个要求,编译器并不承诺将inline修饰的函数作为内联函数。在现代编译器中,没有inline修饰的函
2021-12-08 11:35:26 163
原创 小萧的起点博客
一自我介绍大家好,我来自西安工业大学,是2019级电子信息工程专业的一名大二学生。平时在生活中喜欢羽毛球,电影,美食等,当然我对计算机也特别感兴趣。从小接触计算机时,便觉得它真的很厉害,一个小小的机器为何能进行如此复杂的运算,堪比大脑。自从上了大学才懵懵懂懂的明白一些,在学校学习了C语言,C++后,这使我对编程产生了浓厚的兴趣,希望继续通过系统的学习,真正熟练掌握,立志成为计算机大佬。现在定了软件的方向,以后能走好这条路,为过上更好的生活而奋斗。二编程目标从头开始,重新系统的学习C语言,打好基础,方便
2021-04-03 22:56:36 204 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人