C++基础知识
长弓的坚持
这个作者很懒,什么都没留下…
展开
-
程序内存区域分配(五个段)--终于搞明白了
在学习之前我们先看看ELF文件。ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具体到每一个结构不同。下面我们就从整体上看看这3种格式从文件内容上存储的方式,spec上有张图是比较经典的:如上图:其实从文件存储的格式来说,上面的两种view实际上是一样的,Segment实际上...转载 2019-10-19 17:35:19 · 5549 阅读 · 0 评论 -
C/C++产生随机数
C/C++产生随机数用到两个函数rand() 和 srand()一. 不指定范围产生随机数 用到函数rand(),函数原型为int rand(),无参数。此时会产生一个介于0~RAND_MAX间的整数。RAND_MAX的大小可以查看,在include文件夹(linux在usr目录、windows在安装目录)的stdlib.h可以看到,linux下其值为2147483647(转载 2014-11-11 08:42:50 · 775 阅读 · 0 评论 -
C/C++位运算技巧
预备知识对于位运算,大家都很熟悉,基本的位操作有与、或、非、异或等等。在面试中经常会出现位运算相关的题,所以我就做了简单的整理,参考了很多写的很好的博客及书籍。现在简单说一下,移位运算。左移运算:x 右移运算:x >> y。将x右移y位,这需要区分x是有符号数还是无符号数。在x是无符号数时,只需将x的最右边的y位丢弃,在左边补上y个0。在x是有符号数时,又分为x是正数还转载 2014-10-03 23:45:32 · 429 阅读 · 0 评论 -
C++位运算
前言以前收藏过一篇讲C++位操作的文章,这次博客搬家,以前的数据都没有保留,整理谷歌网站管理后台的时候,发现不时的还有网友有在查找这篇文章。所以,疯刀也来弄个简单的教程,讲讲位操作的用途和魅力吧。位简介位是数据存储的最小单位。在 计算机中的二进制数系统中,位,简记为b,也称为比特,每个0或1就是一个位(bit)。位操作详解我们先来看看位运算操作符:& (按位转载 2014-10-03 23:46:12 · 382 阅读 · 0 评论 -
C++位运算
位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的转载 2014-10-03 23:47:26 · 362 阅读 · 0 评论 -
程序调试的时候利用Call Stack窗口查看函数调用信息
利用Call Stack窗口查看函数调用信息Call Stack窗口能够查看当前方法的调用信息。例如方法的参数信息,调用当前方法的参数等。实例实现的是在按钮的单击事件方法内,调用自定义方法,在Call Stack窗口内可以显示调用的过程,如图1.75所示。 图1.75 利用Call Stack窗口查看函数调用信息Call Stac转载 2014-10-15 16:21:00 · 10068 阅读 · 0 评论 -
全局变量与静态全局变量
1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。2)全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。静态局部变量在局部变量前,加上关键字static,转载 2014-10-10 22:57:32 · 1531 阅读 · 0 评论 -
C++ 排序函数 sort(),qsort()的用法
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表: 函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素部分排序转载 2014-11-10 09:50:56 · 40436 阅读 · 1 评论 -
C语言中fgets()函数
从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。转载 2016-09-19 00:07:34 · 2384 阅读 · 0 评论 -
break, continue, goto, return语句详解
关于break,continue,goto,return语句区别详解(所有语言通用的语法知识)一、break 1. break语句形式: break; 2. break语句功能: A. switch语句中,break语句会终止其后语句的执行,退出switch语句。 B. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,转载 2016-09-19 00:14:06 · 822 阅读 · 0 评论 -
C++中floor,ceil , round , rint用法
1.Math.floorfloor,英文原意:地板。 Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的 值肯定会小于或等于这个浮点数。再看下面的例子的时候,脑中想象一个竖着的数轴,负数在下,正数在上。这样对于向上取整和向下取整的说法,可能会更容易理解。例子: System.out.println("Math.f转载 2016-09-19 00:16:36 · 6262 阅读 · 1 评论 -
数组,结构体初始化为0
一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的竟然不然复制,就把它这章翻译了,如下5.2.1 数组初始化数组可以用一个列值来初始化,例如 int v1[] ={1,2...转载 2018-10-27 13:05:29 · 31113 阅读 · 0 评论 -
C++ 中 string earse 函数的使用
C++中string erase函数的使用(转载)erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last );也就是说有三种用法:(转载 2014-10-10 07:58:48 · 1723 阅读 · 0 评论 -
char str[]与char *str的区别
在C语言中,对字符串的操作主要有两种方式,一是使用字符数组,char str[];二是使用字符指针。那么二者有什么区别呢?下面将分述二者的使用,最后进行比较。一、字符数组 使用char str[]定义一个字符数组str,中括号内可以写上数字表示数组大小,也可以不写。如果不写数字,则必须为字符数组提供初始值,以便编译器进行内存分配。可以使用字符串字面转载 2014-10-10 13:33:39 · 781 阅读 · 0 评论 -
C++ assert.h头文件
NVIDIA面试笔试题之一:assert.h是c标准库的一个头文件,该头文件的主要目的就是提供一个assert的宏定义。assert只是对所给的表达式求值,就像if判断语句中一样,然后如果该值为真则正常运行,否则报错,并调用abort(),产生异常中断,exit出来。该宏可以屏蔽掉,只需在包含assert.h之前#define NDEBUG,想开再#undef。从这里可转载 2014-09-25 14:50:02 · 26706 阅读 · 0 评论 -
C++ limits头文件的用法(numeric_limits)
numeric_limits::max () 是函数,返回编译器允许的 double 型数 最大值。类似的 numeric_limits::max () 返回 编译器允许的 int 型数 最大值。需包含头文件 #include 例子:#include #include using namespace std; main(){cout ::max () << endl;c转载 2014-09-17 16:06:37 · 30278 阅读 · 0 评论 -
数据类型表示范围
long long不是所有编译器都使用的,说白了它就是一种能够表示范围更大的整数的类型一般来说,整数常量是被当作 int 类型来存储的。如果我们使用的整数常量超出了 int 的表示范围,C 语言规定编译器自动使用 unsigned int 来处理这个常量。如果 unsigned 也不足以表示这个常量的话,编译器就会用 long。如果还表示不了的话,那就依次用 unsigned long,long转载 2014-09-17 17:24:05 · 481 阅读 · 0 评论 -
memset函数使用详解
memset函数使用详解今天做题卡在MEMSET函数的使用上了,本来以为int a[100]; memset(a, MAX,sizeof(a));就是将a数组全部赋值为MAX,现在才知道他的填充是以字节为单位,一般用于对字符型变量的初值进行赋值.更详细的解说见百度百科 --> http://baike.baidu.com/view/982208.htm 1。void转载 2014-09-17 10:39:40 · 483 阅读 · 0 评论 -
C++中vector的使用
参考:http://blog.chinaunix.net/uid-26000296-id-3785610.htmlhttp://blog.csdn.net/zhoujiaxq/article/details/9787341转载 2014-09-27 15:46:44 · 369 阅读 · 0 评论 -
C++创建二维数组和矩阵
//构造二维数组,矩阵#includeusing namespace std;int main(){int rows=3;//行int columns=6;//列int **number=new int*[rows];//注意这两个动态数组的创建for(int i=0;i{number[i]=new int[columns];//注意这两个动态数组的创建原创 2014-09-25 13:49:16 · 10373 阅读 · 0 评论 -
C++点操作符和箭头操作符
相同点:两个都是二元操作符,其右操作符是成员的名称。 不同点:点操作符左边的操作数是一个“结果为结构”的表达式; 箭头操作符左边的操作数是一个指向结构的指针。主要看左边的操作符,左边是指针用箭头,否则用点转载 2014-09-27 15:24:31 · 637 阅读 · 0 评论 -
C++ int,float,double,long表示范围
这里的结果是在32位机上面运行的结果:[cpp] view plaincopy#include #include #include using namespace std; int main() { cout "type: \t\t" "************size************转载 2014-10-08 20:47:45 · 4628 阅读 · 1 评论 -
数据结构中的各种树
二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。http://www.cnblogs.com/ly0311/archive/2012/09/16/2687868.htmlhttp://blog.csdn.net/bjyfb/article/details/7522000转载 2014-09-28 08:42:36 · 433 阅读 · 0 评论 -
sprintf函数
字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。中文名字符串格式输出外文名string print format外语缩写sprintf目录1函数简介▪ 功能▪ 头文件▪ 原型▪ 参数列表▪ 相关转载 2014-10-08 07:48:07 · 447 阅读 · 0 评论 -
树的三种遍历
参考:http://blog.csdn.net/pi9nc/article/details/13008511转载 2014-09-29 11:33:09 · 498 阅读 · 0 评论 -
itoa函数和atoi函数
itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。但是,大多数的编译器(如Windows上的)通常在头文件中包含这个函数。1说明编辑功能:将任意类型的数字转换为字符串。在中与之有相反功能的函数是atoi。2用法编辑1char*itoa(intvalue,c转载 2014-10-08 10:33:03 · 1188 阅读 · 0 评论 -
qsort函数和sort函数
做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件 #include 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。转载 2014-10-08 19:44:37 · 437 阅读 · 0 评论 -
strcmp函数和strcpy函数
(一)strcmp函数 strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是: i=strcmp(字符串,字符串); 其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的: ①字符串1小于字符串2,strcmp函数返回一个负值转载 2014-09-18 10:24:04 · 450 阅读 · 0 评论