
C语言
文章平均质量分 87
C语言学习笔记
小倪同学 -_-
天道酬勤当至理,恒心定得上琼楼
展开
-
征服指针——指针和数组练习(1)
文章目录一维数组字符数组一维数组下面输出是什么int main(){ int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a)); printf("%d\n", sizeof(a + 0)); printf("%d\n", sizeof(*a)); printf("%d\n", sizeof(a + 1)); printf("%d\n", sizeof(a[1])); printf("%d\n", sizeof(&a)); pr原创 2021-06-12 19:38:12 · 267 阅读 · 0 评论 -
征服指针——指针练习(2)
文章目录练习1练习2练习3练习4练习5练习6练习7练习8练习1int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); return 0;}练习2struct Test{ int Num; char* pcName; short sDate; char cha[2]; short sB原创 2021-06-13 16:32:23 · 329 阅读 · 1 评论 -
C语言学习笔记(19)程序环境和预处理
文章目录程序的翻译环境和执行环境翻译环境(编译+链接)预处理编译汇编程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。翻译环境(编译+链接)组成一个程序的每 个源文件通过编译过程分别转换成目标代码(object code)。每个目标文件由链接器(linker) 捆绑在一 起,形成-个 单一而完整的可执行程序。链接器同时也会引|入标准C函数库中任何被该程序所用到原创 2021-07-27 18:04:26 · 147 阅读 · 0 评论 -
C语言学习笔记(18)文件操作2
文章目录五.文件的随机读写fseekftellrewind六.文本文件和二进制文件七.文件读取结束的判定错误的使用feof拷贝一份文件八.文件缓冲区五.文件的随机读写fseek根据文件指针的位置和偏移量来定位文件指针。#include<stdio.h>int main(){ FILE* pf1 = fopen("FirstFile.txt", "w"); if (pf1 == NULL) { perror("fopen"); return 1; } //写文件原创 2021-07-26 09:58:19 · 121 阅读 · 0 评论 -
C语言学习笔记(17)文件操作1
文章目录为什么使用文件什么是文件文件的打开和关闭文件指针文件的打开和关闭文件的顺序读写fgetcfputcfgetsfputsfscanf,fprintffread,fwrite为什么使用文件我们运行程序时,数据是存放在内存中,当程序退出的时候,数据自然就不存在了,等下次运行程序的时候,数据又得重新录入。我们在想既然想把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据原创 2021-07-26 09:58:11 · 489 阅读 · 0 评论 -
C语言学习笔记(16)动态内存管理
文章目录为什么存在动态内存分配动态内存函数的介绍malloc和freecallocrealloc为什么存在动态内存分配我们已经掌握的内存开辟方式有:int va1 = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,原创 2021-07-25 09:22:31 · 626 阅读 · 0 评论 -
C语言学习笔记(15)自定义类型:结构体,枚举,联合
文章目录结构体结构体是什么结构体的声明结构体自引用结构体变量的定义和初始化结构体结构体是什么结构是一些值的集合, 这些值称为成员变量。 结构的每个成员可以是不同类型的变量。结构体的声明struct tag{member-list;}variable-list;例如描述一个学生struct Stu{ char name[20];//姓名 int age;//年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢特殊的声明在声明结原创 2021-07-18 15:52:37 · 293 阅读 · 0 评论 -
C语言学习笔记(14)字符串和内存函数2
文章目录strtokstrerror字符分类函数字符转换函数内存操作函数memcpymemmovememcmpmemsetstrtokchar * strtok ( char * str, const char * sep);sep参数是个字符串,定义了用作分隔符的字符集合第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。strtok函数找到str中的下一个标记 ,并将其用\0结尾,返回一个指向这个标记的指针。( 注: strtok函数会改变被操作的原创 2021-06-13 21:40:06 · 325 阅读 · 1 评论 -
C语言学习笔记(13)字符串和内存函数1
字符串和指针strlenstrcpystrcatstrcmpstrncpy标题strncmpstrlensize_t strlen ( const char * str );字符串已经’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)。参数指向的字符串必须要以’\0’结束。注意函数的返回值为size_t ,是无符号的(易错)int main(){ if (strlen("abc") - strlen("abcdef") > 0)原创 2021-06-13 20:45:48 · 128 阅读 · 0 评论 -
C语言学习笔记(12)指针进阶(2)
文章目录函数指针函数指针数组指向函数指针数组的指针回调函数函数指针先看一段代码#include<stdio.h>void test(){ printf("hello world\n");}int main(){ printf("%p\n", test); printf("%p\n", &test); return 0;}数组中&arr是arr的首地址,那么函数中test和&test有什么关系呢?函数中函数名==&函数名函数指针的原创 2021-06-12 15:43:26 · 209 阅读 · 0 评论 -
C语言学习笔记(11)指针进阶(1)
文章目录字符指针指针数组字符指针在指针的类型中我们知道有一种指针类型为字符指针char*。一般使用:int main(){ char ch = 'w'; char* pc = &ch; *pc = 'w'; return 0;}还有一种使用方法如下:int main(){ char* ps = "hello world"; printf("%s\n", ps); return 0;}代码char* ps = "hello world. ";特别容易让人以为是原创 2021-06-12 12:10:21 · 168 阅读 · 0 评论 -
C语言学习笔记(10)数据在内存中的存储
文章目录数据类型介绍类型的基本归类整型家族浮点数家族构造类型指针类型空类型整型在内存中的存储源码,反码,补码大小端介绍整型在内存中的存储 练习数据类型介绍前面我们已经学习了基本的内置类型:名称类型char字符数据类型short短整型int整形long长整型long long更长的整形float单精度浮点数double双精度浮点数类型的意义 :使用这个类型开辟内存空间的大小(大小决定了使用范围)。类型的基本归类整型家族原创 2021-05-24 10:35:33 · 324 阅读 · 1 评论 -
C语言学习笔记(9)实用的调试技巧
文章目录调试的基本步骤Debug和Release的介绍调试的基本步骤发现程序错误的存在以隔离、消除等方式对错误进行定位确定错误产生的原因提出纠正错误的解决办法对程序错误予以改正,重新测试Debug和Release的介绍Debug通常称为调试版本,它包含调试信息 ,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。#include<stdio.h>int main(原创 2021-05-20 17:29:58 · 172 阅读 · 1 评论 -
C语言学习笔记(8)结构体
结构体结构体的声明结构体变量的定义和初始化结构体成员的访问结构体传参结构体的声明1.结构体的基础知识结构是一些值的集合 , 这些值称为成员变量。结构的每个成员可以是不同类型的变量。2.结构的声明struct tag{member - list}variab1e - 1ist;例如描述一个学生typedef struct Stu{ char name[20];//名字 int age;//年齢 char sex[5];//性別 char id[20];//学号}Stu; /原创 2021-05-20 17:18:41 · 393 阅读 · 0 评论 -
C语言学习笔记(7)指针
指针指针是什么指针和指针类型指针类型的意义指针的解应用指针是什么在计算机科学中,指针( Pointer )是编程语言中的一个对象,利用地址,它的值直接指向( points to )存在电脑存储器中另-一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。指针是个变量,存放内存单元的地址(编号)。#include <stdio.h>int main(){ int a = 10;//在内存中原创 2021-05-16 19:10:54 · 1097 阅读 · 1 评论 -
C语言学习笔记(6)详解操作符
文章目录操作符算数操作符位移操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符(三目操作符)逗号表达式下标引用,函数调用和结构成员表达式求值隐式类型转换算术转换操作符的属性操作符算数操作符除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。#include<stdio.h>int main(){ int a = 6 / 5; printf("a=%d\n", a); f原创 2021-05-13 09:40:54 · 432 阅读 · 0 评论 -
C语言学习笔记(5)数组
二维数组二位数组的创建和初始化#include<stdio.h>int main(){ //创建 int arr[3][4]; char ch[3][10]; //初始化 - 创建的同时给赋值 int arr1[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; int arr2[3][4] = { 1, 2, 3, 4, 5, 6, 7 };//不完全初始化 - 后面补0 int arr3[3][4] = { { 1,原创 2021-05-02 15:39:35 · 142 阅读 · 0 评论 -
C语言学习笔记(4)函数
文章目录函数是什么函数的分类1.库函数2.自定义函数函数的参数函数的调用1.传值调用2.传址调用3.练习函数的嵌套调用和链式访问嵌套调用链式访问函数的声明和定义函数声明函数定义函数的递归什么是递归?递归的两个必要条件递归与迭代函数是什么维基百科中对函数的定义:子程序在计算机科学中,子程序, 是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。一 般会有输入参数并有返回值, 提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。原创 2021-05-02 15:36:23 · 603 阅读 · 0 评论 -
C语言学习笔记(3)分支与循环
文章目录if语句if的语法结构:悬空elseswitch语句defult子句if语句if的语法结构:if(表达式){语句;}如果满足表达式就执行语句,否则就跳过语句#include<stdio.h>int main(){ int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年\n"); } return 0;}如下图:输入17时满足age<18执行语句printf(“原创 2021-04-29 20:36:37 · 370 阅读 · 0 评论 -
C语言学习笔记(2)初识C语言(二)
9.操作符算数操作符#include<stdio.h>int main(){ int a = 7; int b = 3; printf("a + b=%d\n", a + b); printf("a - b=%d\n", a - b); printf("a * b=%d\n", a * b); printf("a / b=%d\n", a / b); printf("a %% b=%d\n", a % b); return 0;}位移操作符#incl原创 2021-04-26 14:50:08 · 1272 阅读 · 1 评论 -
C语言学习笔记(1)初识C语言(一)
初识C语言原创 2021-04-26 14:26:37 · 507 阅读 · 0 评论