
C/C++总结
hmxz1024
这个作者很懒,什么都没留下…
展开
-
C程序的存储区及堆与栈区别
本文主要介绍两点 1:C程序的存储区 2:堆和栈之间的区别及特点1:C程序的存储结构《UNIX高级编程》7.6节介绍了C程序存储区,如下图所示: 它分为:(从低地址向高地址依次排列) 1.正文段(text) 2.初始化数据段(data) 3.非初始化数据段(bss) 4.堆(heap)(由图中可以看出,堆是由低地址向高地址生长的) 5.栈(stack)(由图中可以看原创 2017-08-20 22:20:40 · 441 阅读 · 0 评论 -
C语言中的string头文件解析
标准库提供了一些函数用于处理字符串,它们的原型位于头文件string.h中。•string.h头文件定义了一个变量: size_t:这是无符号整数类型,它是 sizeof 关键字的结果。•定义了一个宏: NULL:这个宏是一个空指针常量的值。string.h头文件中定义了22个库函数。其中常用的有:•memcpy函数函数原型: void *memcpy(vo...原创 2017-12-29 00:12:20 · 25470 阅读 · 0 评论 -
C语言中的time函数总结
编程中经常用到时间表达及转换的函数,它们都定义在time.h库函数中,在此做一下总结,以方便后续查看使用。几个时间概念:1:Coordinated Universal Time(UTC): 协调世界时,又称世界标准时间,也即格林威治标准时间(Greenwich Mean Time,GMT),中国内地的时间与UTC得时差为+8,也即UTC+8,美国为UTC-5。2:Calendar Time: 日原创 2017-09-14 22:54:12 · 36073 阅读 · 2 评论 -
C语言中的stdio头文件解析
stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。三个变量:1:size_t 2:FILE :这是一个适合存储文件流信息的对象类型。 3:fpos_t :这是一个适合存储文件中任何位置的对象类型。定义的几个宏:1:NULL 2:_IOFBF、_IOLBF、_IONBF:这些宏为带有特定值的整型常量表达式,并适用于 setvbuf 函数的第三...原创 2018-02-02 22:01:23 · 10517 阅读 · 0 评论 -
C语言中的stdlib头文件解析
stdlib 头文件即standard library(标准库)头文件,里面包含了C、C++语言的最常用的系统函数。包括动态内存管理、随机数生成、与环境之间的通信、整数运算、搜索、排序及转换等。 stdlib .h 头文件定义了四个变量类型、五个宏和各种通用工具函数。4个变量:size_twchar_t(一个宽字符常量大小的整数类型)div_t(div函数返回的结构)ldiv_原创 2018-01-14 14:06:39 · 17438 阅读 · 0 评论 -
C语言中关于指针的易混淆、难理解的知识点
指针指针基础知识指针,就是内存中的一个地址。 计算机内存中的每个位置都由一个地址标识。通常,临近的内存位置合成一组,就允许存储更大范围的值。可以用指针指向这个范围的首地址,从而实现对数据的存储、读写、调用等。int i=0;//在32位计算机中,i占用4个字节int *p=&i;//指针p指向整型变量i的首地址int a[10]={0};//数组也可以看成是一个指...原创 2018-03-23 23:33:48 · 838 阅读 · 0 评论 -
条件编译
什么是条件编译—般情况下,C语言源程序中的每一行代码都要参加编译。但有时候出于对程序代码优化的考虑,希望只对其中一部分内容进行编译。此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译(conditional compile)。 不用条件编译命令而直接用if语句也能达到要求,那么用条件编译命令有什么好处呢?的确,很多问题完全可以不用条件编译处...原创 2018-04-02 12:45:53 · 638 阅读 · 0 评论 -
《C陷阱与缺陷》 阅读总结
这本短小但却经典的书籍,确实指出了C语言编程中的不少值得关注的陷阱。在此只是将一些常见的缺陷列举出来,并对一些容易混淆、遗忘的知识点做一个记录。在以后的程序员生涯中,确实有必要再次阅读该书。第一章 词法“陷阱”1.1 =不同于==注意不要=和==混淆使用,特别要注意“笔误”的发生。1.2 & 和 | 不同于 && 和 ||1.3 词法分析...原创 2018-04-30 20:59:30 · 826 阅读 · 0 评论 -
C语言的可变长参数函数
可变参数的函数通在参数列表的末尾使用省略号(…)定义。 举例如下:#include<stdarg.h>#include<stdio.h>int sum(int, ...);//可变参数函数,用于几个求int数据的和int main(void){ printf("10、20 和 30 的和 = %d原创 2018-05-25 11:06:48 · 3495 阅读 · 0 评论 -
C语言中的变量
本文主要用以解释以下问题:1)automatic variable(自动变量) 和 static variable(静态变量)的区别? 2)static变量放在function内部和外部的区别? 3)definition(定义)和declaration(声明)有什么区别?variable(变量)首先,什么是variable(变量)? 变量有以下这两个定义: A progr原创 2017-08-20 21:54:03 · 1019 阅读 · 0 评论 -
笔试面试常考排序算法总结
在笔试面试的过程中,常常会考察一下常见的几种排序算法,包括冒泡排序,插入排序,希尔排序,直接选择排序,归并排序,快速排序,堆排序等7种排序算法,下面将分别进行讲解。另外,我自己在学习这几种算法过程中,主要参考了MoreWindows Blog中的排序算法,在此向他表示感谢,他写的很详细全面,有兴趣可参考这里写链接内容中的白话经典算法部分。提示:以下排序均是以排序完成后序列从左往右非递减为例讲解...原创 2016-11-11 20:47:59 · 4927 阅读 · 4 评论 -
C++常见笔试面试题目:string类的拷贝赋值运算符函数
要求:写出一个String类的赋值运算符函数 注意事项: (1)返回值的类型需声明为该类型的引用,并在函数结束前返回实例自身的引用(即*this),因为只有返回一个引用,才可以允许连续赋值。 (2)传入参数必须为常量的引用。常量确保在函数内不改变传入实例的状态,而引用避免调用复制构造函数,以提高代码的效率。 (3)判断传入的参数和当前实例是否是同一个实例,以免在此时出现删除自身内存的情况。原创 2016-11-11 17:08:57 · 916 阅读 · 0 评论 -
C++笔试面试常考知识点汇总(二)
51:顶层const与底层const的区别? 用名词顶层const表示指针本身是个常量,而用名词底层const表示指针所指的对象是一个常量。 更一般的,顶层const可以表示任意的对象是常量,这一点对任何数据类型都适用。 而底层const则与指针和引用等复合类型的基本类型部分有关。 当执行拷贝操作时,顶层const不受什么影响;对于底层const,拷入和拷出的对象必须原创 2016-11-13 21:50:11 · 2840 阅读 · 0 评论 -
C++笔试面试常考知识点汇总(三)
101:对引用类型执行sizeof运算得到被引用对象所占空间的大小;对数组执行sizeof得到整个数组所占空间的大小。sizeof运算不会把数组转换成指针处理;对string对象或者vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用多少空间。void main(){ vector<int> vec(10,0); cout<<sizeof(vec原创 2016-11-14 11:19:02 · 2943 阅读 · 1 评论 -
数据结构中二叉树的递归遍历与非递归遍历
二叉树的遍历分为前序遍历、中序遍历和后序遍历三种,其遍历顺序分别为根-左-右,左-根-右和左-右-根。 二叉树的数据结果如下:struct TreeNode{ TreeNode *left; TreeNode *right; int val;};对于递归遍历,三种遍历顺序有一定的相似性,所以比较简单://前序遍历void preorder(TreeNode *root原创 2016-11-14 14:38:15 · 673 阅读 · 0 评论 -
顺序容器
顺序容器 1:顺序容器类型 vector:可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。 deque :双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。 list :双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快。 forward_list :单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度都很快。原创 2017-03-07 17:43:44 · 305 阅读 · 0 评论 -
C++笔试面试常考知识点汇总(四)
128:引用 引用就是某个对象的别名,其最主要作用是函数传参。//变量引用int val=1;int &refval=val;refval=2;coutval//输出2//常量引用const int val = 1;const int &ref1 = val; // 引用了一个一般常量const int &ref2 = 12; // 引用了一个字面常量//int原创 2017-03-07 17:26:12 · 1633 阅读 · 2 评论 -
C++笔试面试常考知识点汇总(一)
1:大端与小端?与寻常习惯的区别? 大端:高地址存储低位字节。 小端:低地址存储低位字节。 如对于数据0x1234,其32为字节为0x00001234。 对于大端来说:(地址由低到高存储)00 00 12 34 对于小端来说:(地址由低到高存储)34 12 00 00 由此可以得出结论:大端的存储方式与寻常习惯相一致,而小端的存储方式为按照字节倒排。2:#include<原创 2016-11-13 20:48:48 · 6898 阅读 · 0 评论 -
C专家编程
第一章 C:穿越时空的迷雾1.2 C语言早期体验C语言排斥强类型,即其是弱类型。它允许程序员需要时可以在不同类型的对象间赋值。C语言的许多特性是为了方便编译器设计者而建立的: 1.数组下表从0开始 2.基本数据类型直接和底层硬件相关 3.auto 关键字是摆设(它是缺省的内存分配模式,其只对创建符号表入口的编译器设计者有用) 4.float被自动扩展为double(但在AN...原创 2018-05-21 23:10:46 · 4283 阅读 · 0 评论