![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
学习笔记
guardwhy
这个作者很懒,什么都没留下…
展开
-
C语言-内存管理
动态内存分配传统数组的缺点1.数组长度必须事先指定,而且只能是常整数,不能是变量。代码示例例子int a[5]; //必须事先指定,而且只能是常整数int len = 5; int a[len];//error2.传统形式定义的数组,该数组的内存程序员无法手动释放数组一旦定义,系统为数组分配的内存空间就会一直存在,除非数组所在的函数运行终止,数组的空间才会被系统自动释放(不是清零)。。void f(void){ //数组a 占20个字节的内存空间,无法手动编程释放它,数组a只能在f原创 2020-05-28 01:05:16 · 216 阅读 · 0 评论 -
C语言-结构体类型
为什么需要结构体为了表示一些复杂的事物,而普通的基本类型无法满足实际要求。代码示例# include <stdio.h>struct Student{ int age; float score; char sex;};int main(void){ struct Student st = {80, 66.6, 'F'}; /* int age; float score; char sex; int age2; float score2; char sex2;原创 2020-05-28 01:03:46 · 421 阅读 · 0 评论 -
C语言-变量属性
变量属性C语言中的变量可以有自己的属性,在定义变量的时候可以加上**"属性**"关键字。属性关键字指明变量的特殊意义。auto关键字auto是C语言中局部变量的默认属性。auto表明将被修饰的变量存储于栈上。编译器默认所有的局部变量都是auto的。代码示例void f(){ int i; // 局部变量默认属性为auto auto int j; // 显示声明auto属性}register关键字register关键字指明将局部变量存储于寄存器中。regist原创 2020-05-28 00:03:35 · 313 阅读 · 0 评论 -
C语言-指针强化
多级指针多级指针案例1# include <stdio.h>int main(void){ int i = 10; int * p = &i; //p只能存放int类型变量的地址 int ** q = &p; //q是int **类型,所谓int**类型就是指q只能存放int*类型变量的地址, int *** r = &q; //r是int***类型, 所谓int***类型就是指r只能存放int ** 类型变量的地址 //r = &原创 2020-05-28 01:09:50 · 154 阅读 · 0 评论 -
C语言-指针函数
函数参数普通变量作为函数的参数代码示例#include <stdio.h>// 声明函数void ChangeNumValue(int a) { a = 10000;}int main() { // 定义变量 int num = 10; // 调用函数 ChangeNumValue(num); printf("num = %d\n", num); return 0;}图示程序运行结果num = 10指针变量作原创 2020-05-28 01:07:40 · 220 阅读 · 0 评论 -
C语言-指针数组
指针数组本质是数组 只是每个元素的类型是指针。图示代码示例#include <stdio.h>int main() { int num1 = 10; int num2 = 20; int num3 = 30; int num4 = 40; int *arr[4] = {&num1, &num2,&num3,&num4}; int n = sizeof(arr) / sizeof(arr[0]);原创 2020-05-28 01:09:10 · 652 阅读 · 0 评论 -
C语言-指针基础
内存的存储1、是以一个字节为一个编号,也就是8位合在一起给一个编号,不是0,1就给编号。内存分为很多个单元,每个单元就会分配一个编号。地址内存单元的一个编号。而指针和地址一个概念的。也就是说指针就是地址。- 内存单元的编号,是一个从0开始的非负整数 - 范围:cpu对内存是通过控制、数据、地址三条总线来进行控制的。控制总线:cup会先把内存中的数据读入,进行处理后,在返回给内存,然后内存在把数据写入硬盘。数据总线:用于数据的传输,不管是把内存中的数据发送给cpu,还是把cpu的数据原创 2020-05-28 01:08:21 · 274 阅读 · 0 评论 -
C语言-函数实现
函数的定义1.逻辑上:能够完成特定功能的独立的代码块。2.物理上:能够接收数据【也可以不接收数据】,能够对接收的数据进行处理【也可以不对数据进行处理】,能够将数据处理的结果返【也可以没有返回值】。3.函数定义的本质:详细描述函数之所以能够实现某个特定功能的具体方法。语法返回值类型 函数名(形式参数列表){ 函数体;}**返回值类型:**用户需要函数返回的数据类型。**函数名:**代表的是函数的入口地址。**形式参数列表:**就是用户将函数外部数据传入函数内部的 局部变量。**函数体原创 2020-05-28 00:06:40 · 1104 阅读 · 0 评论 -
C语言 - 数组
数组定义同一类型的变量——元素(element)集中在一起,在内存上排列成一条直线,这就是数组。元素的类型既可以是int类型,也可以是double类型。数组的声明数组的声明通过指定的元素类型,变量名,元素个数。另外[ ]中的元素个数必须是常量。图示:数组的特点类型相同的元素组成的集合。空间连续取元素的个数数组的总大小=元素的个数 * 每个元素的大小数组名arr作为类型时候,数组的总大小 == sizeof(arr)每个元素的大小 == sizeof(arr[0])元素的个数 =原创 2020-05-28 01:06:52 · 154 阅读 · 0 评论 -
C语言-流程控制
条件判断if-else 语句一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。语法:if(boolean_expression){ /* 如果布尔表达式为真将执行的语句 */}else{ /* 如果布尔表达式为假将执行的语句 */}流程图代码示例#include <stdio.h>int main(){ // 定义变量 short a = 1; short b = 2;原创 2020-05-28 01:04:33 · 349 阅读 · 0 评论 -
C语言-数据类型
数据类型数据类型的本质就是一个模子。数据类型代表需要占用的内存的大小。图示:变量变量的本质是内存中一段连续存储空间的别名。程序中通过变量来申请并且命名存储空间。通过变量的的名字可以使用存储空间。初始化变量软件在运行前需要向操作系统申请存储空间,在内存空间足够空闲时,操作系统将分配一段内存空间并将该外存中软件拷贝一份存入该内存空间中,并启动该软件运行。在软件运行期间,该软件所占内存空间不再分配给其他软件。当该软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内原创 2020-05-28 01:06:04 · 178 阅读 · 0 评论