![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
课堂笔记
文章平均质量分 75
HarmoniaGropius
这个作者很懒,什么都没留下…
展开
-
Makefile & GDB & Shell
Makefile(编译工程)target : depengency ( Tab 字符) command 实例第一步.vim Makefile 第二步. hello : hello.o (Tab 键 空4格) gcc hello.o -o hellohello.o : h原创 2018-01-25 20:16:41 · 95 阅读 · 0 评论 -
函数
1.无参函数的定义形式类型标识和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回之类型,该类型标识符与前面介绍的各种说明符相同。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。{}中的内容称为函数体。在很多情况下都不要求无参函数有返回值。此时函数类型符可以写void2.有参函数定义的一般形式有参函数比无参函数多了一个内容,即形式原创 2018-01-25 21:35:26 · 180 阅读 · 0 评论 -
数组与指针的区别
(1)空间分配指针是动态分配空间,通过malloc在堆上分配所需要的空间,分配的空间不一定连续,在使用完之后需要调用free()来释放分配空间。而数组是静态分配空间,在全局变量区或者栈上分配空间,分配的空间是连续的,局部变量在生命周期结束后自动释放,全局变量在程序结束完自动释放。(2)访问效率指针是通过地址间接访问,而数组是直接访问数值。因此指针的访问效率低,数组的访问效率高。原创 2018-02-02 14:39:09 · 8868 阅读 · 1 评论 -
关键词const是什么含意,有什么作用
是将一个变量变成常量,添加到符号表中,编译程序时,直接略过,提升代码效率,可通过指针改变const的值(符号表是一个常量,一般不可被修改,指针除外)const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。const关键字的作用主要有以下几点:(1)可以定义const常量,具有不可变性。 例如:const int Max=100; int A原创 2018-02-02 14:59:43 · 537 阅读 · 0 评论 -
请说出const与#define相比,有何优点
首先阐述两者区别就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。 就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份;const定原创 2018-02-02 15:09:03 · 1758 阅读 · 0 评论 -
什么是预编译,何时需要预编译? 多个文件链接成一个文件
预编译又称为预处理 ,是做些代码文本的替换工作。处理以#开头的指令 , 比如拷贝#include 包含的文件代码,#define宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。 主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。 预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中原创 2018-02-02 16:08:19 · 837 阅读 · 0 评论 -
在c++程序中调用被c编译器编译后的函数,为什么要加extern“c”
C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个C 函数的声明如下:void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指原创 2018-02-02 16:48:16 · 800 阅读 · 0 评论 -
指针
1.指针的类型从语法上来看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型,这是指针本身具有的类型。实例(1)int *ptr; //指针的类型是 int*(2)char *ptr; //指针的类型是 char*(3)int **ptr; //指针的类型是 int** (4)int原创 2018-01-27 19:33:55 · 152 阅读 · 0 评论 -
函数,数组,
函数for(表达式1, 表达式2, 表达式3)表达式1:初始条件表达式2:结束条件表达式3:执行语句逗号语句(,) 表达式1,表达式2 : 运行先1后2,但是,有1的过程,结果显示是表达式2 的结果break只能出现在循环和switch语句中最长的循环放在最内层原创 2018-01-28 01:49:33 · 111 阅读 · 0 评论 -
指针 续
指针是变量的一种,里面是一个地址,通过这个地址找到要寻找的数据int *p = &a // p指向a, p代表a的地址指针无论什么类型都是4个字节,一个字节8位,32位操作系统 段错误的原因:访问了不能访问的内存int *p; //野指针,指向不能访问的地址int *p = NULL; //空指针p = &a; // p是指针,将a的地址赋给p in原创 2018-01-29 20:12:01 · 131 阅读 · 0 评论 -
Linux新手初探
一、Redhat的指令操作界面的打开在Redhat中我们是在 “终端” 中进行指令操作,我们可以在Redhat的左上角 ‘应用程序’—>‘附件’—>‘终端’即可打开,也可以将其拉到桌面上,方便后续打开。打开终端,我们即可进行相应的指令操作二、接下来我们来简单介绍一些常用指令以及他们的使用:原创 2018-01-23 09:01:54 · 140 阅读 · 0 评论 -
Linux小结
file1.作用通过探测文件内容判断文件类型,使用权限是所有客户2.格式file 【options】 文件名3.【options】 主要参数-v : 在标准输出后显示版本信息,并且退出-z : 探测压缩过的文件类型-L : 允许符合连接-f name : 从文件 namefile 中读取要分析的文件名列表4.简单说明使用file 命令可以知原创 2018-01-23 15:01:31 · 126 阅读 · 0 评论 -
数据类型
提问:1.什么是联合体?2.变量名和变量值区别是什么?3.数据变量有哪些?4.局部变量和全局变量?5.有哪些基本内置类型?6.static是什么?7.extern是什么?8.const是什么?9.typedef是什么?10.枚举与#define的区别?答1.联合体 1)联合体是一个结构; 2)它的所有成员相对于基地址的偏原创 2018-01-23 14:34:22 · 124 阅读 · 0 评论 -
系统调用与库函数的区别和联系(API)
在写程序的过程中,像MFC,VC++这些编程,都会涉及到函数的调用,有库函数也有系统函数,下面看一看它们的区别!!系统调用(system call)和库函数调用(Library function call)的区别?理解库函数的区别和系统调用,首先是kernel mode和user mode这两个模式是这两种函数工作时的空间不同。一、系统调用:系统调用实际上是指底层的一个调用,就是内原创 2018-01-31 16:52:17 · 2996 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的原创 2018-01-31 16:56:41 · 140 阅读 · 0 评论 -
C语言中分配内存的方式有哪些?C语言中常见的内存错误有哪些?内存管理,内存泄漏,内存空洞?
分配方式有三种: 1、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 2、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 3、从堆上分配,亦称动态内存分配。程序在运行的时候用原创 2018-01-31 21:21:58 · 304 阅读 · 0 评论 -
C语言基础
一. 数据的表现形式有两种:1.常量 2.变量二.1.常量是一种在程序中保持固定类型和固定值的数据。编译系统从数据形式上可以区分(除枚举类型外)。常量分为:(1)整型常量(2)实型常量(3)字符常量(4)字符串常量(5)枚举常量2.变量是在程序执行过程中可以改变。三.1.整型常量十进制:18、-31long int型常量:123l、123L原创 2018-01-25 15:03:41 · 316 阅读 · 0 评论 -
内存管理,预处理,结构体
1.数据段 (.bss .data .rodata)段 .bss段用来存放那些没有初始化和初始化为0的全局变量bss类型的全局变量只占运行时的内存空间,而不占用文件空间现在大多数操作系统,在加载程序时,会把所有的bss全局变量清0.但为保证程序的可以移植性,手工把这些变量初始化为0也是一个好习惯,这样这些变量都有个确定的初始值。当然作为全局变量,在这个程原创 2018-01-29 21:21:37 · 125 阅读 · 0 评论