一、本课重点程序的翻译环境程序的执行环境详解:C语言程序的编译+链接预定义符号介绍预处理指令#define宏和函数的对比预处理操作符#和##的介绍命令定义预处理指令#include预处理指令#undef条件编译二、程序的翻译环境在翻译环境中,主要包括两个过程:编译+链接。在这个环境中,将源代码转化为可执行的机器指令。每个源文件都会经过编译器单独处理,生成自己对应的目标文件(.obj)。目标文件加上
一、本课重点为什么存在动态内存管理动态内存函数介绍mallocfreecallocrealloc常见动态内存错误几个经典的面试题柔性数组二、为什么存在动态内存管理在堆区(heap)进行分配,可以节省空间三、动态内存函数介绍1.malloc向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回指向开辟好空间的指针;如果开辟失败,则返回一个NULL的指针,因此malloc的返回值
一、结构体、枚举、联合1.结构体结构体类型的声明结构体的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)2.枚举枚举类型的定义枚举的优点枚举的使用 3.联合联合类型的定义联合的特点联合大小的计算二、结构体1.结构体的声明普通结构体匿名结构体(必须根据变量列表直接创捷结构体变量否则在其他地方无法创建)上面两个结构体在声明的时候省略掉了结构
一、函数介绍1.strtok字符串切割注意:1.会破坏切割的字符串 2.找完第一个符号之后,后面的传参要给切割的字符串赋NULL指针//strtok - 字符串切割函数 int main() { char arr[] = "chai@hsshf.hkh"; char* p = "@."; char buf[1024] = {0}; st
一、函数介绍1、Strstr作用:查找字符串(返回字符串的地址)注意:1.返回的是第一次出现是的地址 2.打印时会返回第一次出现之后的所有字符串char* my_strstr(const char* p1, const char* p2) { assert(p1 &&a
一、函数介绍1.Strcmp 字符串比较(判断字符串是否相等) 实际上是比较两个字符串内部的字符的大小,这里的比较指的是字母所在的位置大小,越往后越大同时要注意在不同编译器下返回值是不同的,若前一个字符串大于第二个字符串则大于0,小于则小于0,相等则等于0.int my_strcmp(const char* str1, const char* str2) { assert(str1 &&
一、主要内容讲解库函数的用法求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数介绍strncpystrncatstrncmp字符串查找strstrstrtok错误信息报告strerror字符操作函数内存操作函数memcpmmemmovememsetmemcmpC语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放
qsort - 库函数 - 排序quick sort 快速排序int main() { //指针数组 int* arr[10]; //数组指针 int* (*pa)[10] = &arr; //函数指针 int (*pAdd)(int , int) = Add; int sum = pAdd(1, 2); //函数指针的数组 int (*pArr[5])(int ,int
一、主要内容1.字符指针2.数组指针3.指针数组4.数组传参和指针传参5.函数指针6.函数指针数组7.指向函数指针数组的指针8.回调函数9.指针数组和数组面试题的解析二、字符指针在指针类型中我们知道可以使用字符指针来表示字符串的地址还有一种使用方式:地址指向常量字符串int main() { char* p = "abcdef"; printf("%s\n", p); re
一、本课重点1.数据类型详细介绍2.整型在内存中的存储:原码、补码、反码3.大小端子节序介绍及判断4.浮点数在内存中的存储解析二、数据类型的介绍1.内置类型:charshortintlonglong longfloatDouble2.自定义类型(构造类型):数组类型结构体类型枚举类型联合类型union3.类型的意义:1.使用这个类型开辟内存空间的大小2.如何看待这个内存空间的视角三、数据分类整型家
一、什么是bug?是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象二、调试的基本步骤1.发现程序错误的存在2.以隔离、消除等方式对错误进行定位3.确定错误产生的原因4.提出纠正错误的解决办法5.对程序错误予以改正,重新测试release和debug的介绍debug版本是调试版本,它包含调试信息,并且不做任何优化,便于程序员调试程序。 release版
一、结构的基础知识结构式一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。二、结构的声明struct tag{Member_list;}variable_list;这里会直接创建全局变量//struct 结构体关键字 Stu - 结构体标签 struct Stu - 结构体类型 struct Stu { //成员变量 char name[20]; short age;
一、本课内容1.指针是什么2.指针和指针类型3.野指针4.指针运算5.指针和数组6.二级指针7.指针数组二、指针是什么?指针是一个重要的计算机科学概念,主要在编程语言中使用。它可以被视为一个变量,其值是指向另一个变量或函数内存地址的引用。指针在C语言中扮演着核心角色,它允许程序间接访问和操作内存中的数据。int main() { int a = 10; int* p = &a; r
一、分类算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员二、操作符详解1.算术操作符/ 和%(取模) 注意事项:整型除法只能得整数,要让结果是小数,需要让一个数是小数;对于取模操作,只能两个数都是整型。2.移位操作符(只作用于整数)>> 右移操作符1.算术右移(默认是这种)右边丢弃,左
一、sizeof的作用sizeof 是一个经常用到的关键字,它的主要作用是计算变量长度或者变量类型的大小,它以字节为单位。例如:#include <stdio.h> int main() { int a = 4; printf("sizeof(int) = %lld\n", sizeof(int)); printf("sizeof(a) = %lld\n", sizeof(a)
一、C语言中函数的分类c语言中函数的分类:库函数#include <string.h> //strcpy函数 int main() { char arr1[] = "kevin"; char arr2[20] = "#########"; strcpy(arr2, arr1); printf("%s\n", arr2); return 0; } //memset函数(内存设
一、分支语句(循环结构)If(可以单分支也可多分支)多分支:If(表达式1) 语句1;//if下面有多条语句要用大括号else if(表达式2)语句2;Else语句3;注意:else会与离它最近的未匹配的if去匹配,跟与谁对齐无关int main() { int ret = 0; int ch = 0; char password[20] = {0}; p
一、初识指针涉及&,*符号int main() { int a = 10; //&a 取地址 int* p = &a;//int* 指针的类型 //专门用来存放地址的 - 指针变量 *p = 20;//* - 解引用操作符 printf("%p\n", &a); printf("%p\n", p); printf("a = %d\n", a);
一、常量c语言中的常量和变量的定义的形式有所差异。C语言中的常量分为以下几种:字面常量const修饰的常变量#define定义的标识符常量枚举常量枚举常量是不可以更改的)通过枚举常量定义的变量是可以更改的)二、注释+转义符+字符串1.字符串:int main() { char arr1[] = "abc";//字符数组 //"abc" -- 'a''b''c''\0' -- '\0
什么是c语言?1.语言的发展:汇编语言--->b语言--->c语言、c++、--高级语言国际标准:ANSI C - C89/C90C99/C11 并不流行、很多不支持 c语言是一个面向结果编程的语言,与java等面对对象编程的语言并不相同。 c常用的主要编译器有:Clang、gcc、WIN-TC、SUBLIME、Turbo C2.写c语言第一步是创建工程,养成良好的
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号