C语言基础
C语言的基础知识点
xiaotai1234
计算机研究生在读,会使用java,javascript,php,c++,c,python等多门编程语言,懂算法,设计模式,jvm虚拟机,并发等。了解操作系统,计算机组成原理,计算机网络等基础底层知识。
展开
-
C语言动态库的封装和使用
C语言动态库的封装和使用一、库的基本概念二、windows下静态库创建和使用1.静态库的创建2.静态库的使用3.静态库优缺点三、windows下动态库创建和使用1.动态库的创建2.动态库的使用...原创 2021-01-15 15:31:36 · 1390 阅读 · 0 评论 -
C语言预处理
C语言预处理一、预处理的基本概念二、文件包含指令(#include)1.文件包含处理2.#incude<>和#include""区别三、宏定义1.无参数的宏定义(宏常量)2.带参数的宏定义(宏函数)四、条件编译1.基本概念2.条件编译五、一些特殊的预定宏...原创 2021-01-15 15:23:50 · 211 阅读 · 0 评论 -
C语言函数指针和回调函数
C语言函数指针和回调函数一、函数指针1.函数类型2.函数指针(指向函数的指针)int my_func(int a,int b){ printf("ret:%d\n", a + b); return 0;}//1. 先定义函数类型,通过类型定义指针void test01(){ typedef int(FUNC_TYPE)(int, int); FUNC_TYPE* f = my_func; //如何调用? (*f)(10, 20); f(10, 20);}//2. 定原创 2021-01-15 15:17:07 · 270 阅读 · 0 评论 -
C语言文件提高
C语言文件提高一、文件相关概念1.文件的概念2.流的概念文本流二进制流二、文件的操作1.文件流总览2.文件指针3.文件缓冲区4.文件打开关闭文件打开(fopen)文件关闭(fclose)5.文件读写函数回顾字符读写函数回顾int fputc(int ch, FILE * stream);功能:将ch转换为unsigned char后写入stream指定的文件中参数: ch:需要写入文件的字符 stream:文件指针返回值: 成功:成功写原创 2021-01-15 08:42:29 · 322 阅读 · 0 评论 -
C语言结构体
C语言结构体一、结构体基础知识1.结构体类型的定义2.结构体变量的定义3.结构体变量的初始化4.结构体成员的使用5.结构体赋值赋值基本概念深拷贝和浅拷贝6.结构体数组struct Person{ char name[64]; int age;};void test(){ //在栈上分配空间 struct Person p1[3] = { { "John", 30 }, { "Obama", 33 }, { "Edward", 25} }; st原创 2021-01-15 08:26:13 · 296 阅读 · 0 评论 -
C语言多维数组
C语言多维数组一、一维数组1.数组名2.下标引用3.数组和指针4.作为函数参数的数组名二、多维数组1.数组名2.指向数组的指针(数组指针)//方式一void test01(){ //先定义数组类型,再用数组类型定义数组指针 int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //有typedef是定义类型,没有则是定义变量,下面代码定义了一个数组类型ArrayType typedef int(ArrayType)[10]; //int原创 2021-01-14 17:56:27 · 1581 阅读 · 0 评论 -
C语言位运算
C语言位运算一、位逻辑运算符1.按位取反2.位与(AND): &3.位或(OR): |4.位异或:5.用法打开位关闭位转置位交换两个数不需要临时变量二、移位运算符1.左移 <<2.右移 >>3.用法:移位运算符...原创 2021-01-14 17:41:06 · 221 阅读 · 0 评论 -
C语言指针的指针(二级指针)
C语言指针的指针(二级指针)一、二级指针基本概念二、二级指针做形参输出特性二级指针做参数的输出特性是指由被调函数分配内存。//被调函数,由参数n确定分配多少个元素内存void allocate_space(int **arr,int n){ //堆上分配n个int类型元素内存 int *temp = (int *)malloc(sizeof(int)* n); if (NULL == temp){ return; } //给内存初始化值 int *pTemp = temp;原创 2021-01-14 17:18:30 · 510 阅读 · 0 评论 -
C语言指针强化
C语言指针强化一、指针是一种数据类型1.指针变量2.野指针和空指针空指针野指针3.间接访问操作符4.指针的步长二、指针的意义_间接赋值1.间接赋值的三大条件2.如何定义合适的指针变量3.间接赋值:从0级指针到1级指针int func1(){ return 10; }void func2(int a){ a = 100;}//指针的意义_间接赋值void test02(){ int a = 0; a = func1(); printf("a = %原创 2021-01-14 17:11:27 · 283 阅读 · 0 评论 -
C语言内存分区
C语言内存分区一、数据类型1.数据类型概念2.数据类型别名3.void数据类型//1. void修饰函数参数和函数返回void test01(void){ printf("hello world");}//2. 不能定义void类型变量void test02(){ void val; //报错}//3. void* 可以指向任何类型的数据,被称为万能指针void test03(){ int a = 10; void* p = NULL; p = &a;原创 2021-01-14 16:50:33 · 384 阅读 · 2 评论 -
C语言文件操作
C语言文件操作一、概述1.磁盘文件和设备文件2.磁盘文件的分类3.文本文件和二进制文件文本文件二进制文件二、文件的打开和关闭1.文件指针2.文件的打开3.文件的关闭三、文件的顺序读写1.按照字符读写文件fgetc、fputc写文件文件结尾读文件2.按照行读写文件fgets、fputs写文件读文件强化训练:文件版四则运算3.按照格式化文件fprintf、fscanf写文件读文件强化训练:文件版排序4.按照块读写文件fread原创 2021-01-14 16:12:05 · 284 阅读 · 0 评论 -
C语言复合类型(自定义类型)
C语言复合类型(自定义类型)一、结构体1.概述2.结构体变量的定义和初始化//结构体类型的定义struct stu{ char name[50]; int age;};//先定义类型,再定义变量(常用)struct stu s1 = { "mike", 18 };//定义类型同时定义变量struct stu2{ char name[50]; int age;}s2 = { "lily", 22 };struct{ char name[50]; int a原创 2021-01-14 15:50:49 · 432 阅读 · 0 评论 -
C语言内存管理
C语言内存管理一、作用域1.局部变量2.静态(static)局部变量3.全局变量4.静态(static)全局变量5.extern全局变量声明6.全局函数和静态函数7.总结二、内存布局1.内存分区代码区全局初始化数据区/静态数据区(data段)未初始化数据区(又叫 bss 区)2.存储类型总结3.内存操作函数memset()memcpy()memmove()memcmp()4.堆区内存分配和释放malloc()#include原创 2021-01-14 15:24:24 · 237 阅读 · 0 评论 -
C语言指针
C语言指针一、概述1.内存2.物理存储器和存储地址空间3.内存地址4.指针和指针变量二、指针基础知识1.指针变量的定义和使用2.通过指针间接修改变量的值3.指针大小4.野指针和空指针5.万能指针void *6.const修饰的指针变量三、指针和数组1.数组名2.指针操作数组元素3.指针加减运算加法运算2) 减法运算4.指针数组四、多级指针五、指针和函数1.函数形参改变实参的值#include <stdio.h>原创 2021-01-14 08:41:26 · 314 阅读 · 0 评论 -
C语言函数
C语言函数一、概述1.函数分类2.函数的作用3.函数的调用:产生随机数二、函数的定义1.函数定义格式2.函数名字、形参、函数体、返回值函数名形参列表函数体返回值三、函数的调用1.函数执行流程2.函数的形参和实参3.无参函数调用4.有参函数调用5.函数返回值四、函数的声明五、main函数与exit函数六、多文件(分文件)编程1.分文件编程2.防止头文件重复包含...原创 2021-01-13 21:41:54 · 227 阅读 · 0 评论 -
C语言数组和字符串
C语言数组和字符串一、概述二、一维数组1.一维数组的定义和使用2.一维数组的初始化3.数组名4.强化训练一维数组的最值一维数组的逆置冒泡法排序#include <stdio.h>int main(){ int a[] = { 1, -2, 3,- 4, 5, -6, 7, -8, -9, 10 };//定义一个数组,同时初始化所有成员变量 int i = 0; int j = 0; int n = sizeof(a) / sizeof(a[0])原创 2021-01-13 21:26:15 · 261 阅读 · 0 评论 -
C语言程序流程结构
C语言程序流程结构一、概述二、选择结构1.if语句2.if…else语句3.if…else if…else语句4.三目运算符5.switch语句三、循环结构1.while语句2.do…while语句3.for语句4.嵌套循环四、跳转语句break、continue、goto1.break语句2.continue语句3.goto语句(无条件跳转,尽量少用)...原创 2021-01-13 18:35:23 · 875 阅读 · 0 评论 -
C语言运算符与表达式
C语言运算符与表达式一、常用运算符分类二、算术运算符三、赋值运算符四、比较运算符五、逻辑运算符六、运算符优先级七、类型转换1.隐式转换2.强制转换原创 2021-01-13 17:27:34 · 317 阅读 · 0 评论 -
C语言数据类型
C语言数据类型一、常量与变量1.关键字2.数据类型3.常量4.变量概念声明和定义区别5.使用示例二、整型:int1.整型变量的定义和输出2.整型变量的输入3.short、int、long、long long4.有符号数和无符号数区别有符号数无符号数和无符号整型取值范围三、sizeof关键字四、字符型:char1.字符变量的定义和输出2.字符变量的输入3.ASCII对照表4.转义字符五、实型(浮点型):float、dou原创 2021-01-13 17:06:50 · 240 阅读 · 0 评论 -
C语言概述
C语言概述一、简介二、为什么要学习C语言1.C语言特点2.学习C语言理由3.C语言应用领域4.C语言关键字5.学习C常见困惑三、第一个C语言程序:HelloWorld1.编写C语言代码:hello.c2.通过gcc编译C代码gcc编译器介绍Windows平台下gcc环境配置3.代码分析4.system函数system函数的使用5.C语言编译过程C程序编译步骤gcc编译过程查找程序所依赖的动态库6.CPU内部结构与原创 2021-01-13 16:37:17 · 206 阅读 · 0 评论