随笔分类 -  C/C++

C/C++ 各进制赋值、int/char转换、sscanf/sprintf、位操作运算
摘要:一、各进制赋值 1.十六进制赋值 int i=0x12AD; int i=0X12AD; int i=0x12Ad; int i=0X12Ad; //以上都是十六进制,表示十进制173; 2.八进制赋值 int num=017; //数字前面加0就是8进制,017表示十进制15,若写018则编译出错 阅读全文

posted @ 2017-08-22 17:30 chakyu 阅读(1319) 评论(1) 推荐(0)

dll、lib(动态链接库、静态链接库)的区别
摘要:1.dll:dynamic link library; lib:static link library。 2.windows系统中,许多app并不是仅由一个完整的exe构成,而是按功能分成了若干部分,由exe、dll、lib等组成,这些里面包含了函数的实现过程等。 3.lib编译时用到,用一下,链接 阅读全文

posted @ 2017-08-22 17:23 chakyu 阅读(342) 评论(1) 推荐(0)

C/C++ 函数模板、全局变量、register、存储周期
摘要:1.函数声明时可以简写,如: int max(int,int); 2.函数模板: 格式: template <typename haha>或template <class haha>typename、class为关键字,class也是指函数而非类。e.g. template <typename ha 阅读全文

posted @ 2017-08-22 16:31 chakyu 阅读(325) 评论(1) 推荐(0)

C/C++ 数组、字符串、string
摘要:1.定义数组时,数组中元素的个数不能是动态的,不能用变量表示(const变量可以),必须是已知的。 2.引用数组时只能引用数组中某个元素,不能引用整个数组。 3.定义二维数组时,若同时全部初始化,则可省略第一维的长度, int a[][3]={1,2,3,4,5,6,7,8,9}; 4.数组做函数参 阅读全文

posted @ 2017-08-22 16:30 chakyu 阅读(262) 评论(1) 推荐(0)

C++ 引用、指针
摘要:一、引用 1.引用的作用:给变量起一个别名,是c++对c的扩充。原名和别名有相同的地址,根本上就是同一个东西,只是名字不一样。c++的引用机制主要是为了用作函数参数,增强函数传递数据的能力,比如swap函数,引用就是为了直接修改实参。 2.声明方式: int a;int &b=a; &紧跟在数据类型 阅读全文

posted @ 2017-08-22 16:28 chakyu 阅读(170) 评论(1) 推荐(0)

C++ 类、对象、class
摘要:一、对象初始化 1.不能在类声明中对数据成员初始化,因为类只是一个抽象类型,不占存储空间,无处容纳数据。 2.若某类的数据成员都是public,则可以像结构体一样初始化,如 Time t={12,21,04}; 若数据成员有private或protected则不能这样初始化。 3.构造函数没有返回值 阅读全文

posted @ 2017-08-22 16:23 chakyu 阅读(194) 评论(1) 推荐(0)

C/C++ 运算符重载、数据类型转换
摘要:1.运算符就是“+”、“>>”等符号,对运算符重载实质就是对函数的重载,这样运算符就能在原有基础上增加新功能,不能自己定义新运算符,只能对已有运算符重载,重载运算符后不能改变运算符本身的特性,比如优先级,运算数个数等; 2.运算符重载格式: 函数类型 operator 运算符名称(形参表) { // 阅读全文

posted @ 2017-08-22 16:16 chakyu 阅读(264) 评论(1) 推荐(0)

C++ 继承/派生、访问属性、构造函数
摘要:1.子类继承父类的继承方式:public,private,protected,不写则默认为private; 2.子类会继承父类的全部成员(除了构造函数、析构函数,虽然析构函数有virtual,但是不是继承的意思),全盘接受,没得选,不能只继承一部分,而不继承另一部分,这样就可能造成数据冗余,在继承时 阅读全文

posted @ 2017-08-22 16:16 chakyu 阅读(222) 评论(1) 推荐(0)

C++ 多态、虚函数、虚析构函数
摘要:1.若某种语言只支持类但不支持多态,则只能称为基于对象,不能说是面向对象。 2.多态:向不同对象发送同一个消息,不同的对象会产生不同的行为,发送消息可以是调用函数等操作。函数重载、运算符重载都是多态。 3.多态分为静态和动态: 静态多态性:函数重载和运算符重载(实质也是函数重载),编译时就知道调用哪 阅读全文

posted @ 2017-08-22 16:13 chakyu 阅读(206) 评论(1) 推荐(0)

C/C++ 标准输入、输出
摘要:一、分类 1.标准输入输出 键盘输入,显示器输出。2.文件输入输出 以外存为对象,即硬盘、光盘等。3.串输入输出 对内存中指定空间进行输入输出。 二、c语言中的输入输出 #include <stdio.h>1.scanf,printf char a,b; scanf("%c%c",&a,&b); p 阅读全文

posted @ 2017-08-22 15:47 chakyu 阅读(447) 评论(1) 推荐(0)

C++ 异常处理(try catch throw)、命名空间
摘要:一、c++工具 模板(函数模板、类模板)、异常处理、命名空间等功能是c++编译器的功能,语言本身不自带,这些功能已经成为ANSI C++标准了,建议所有的编译器都带这些功能,早期的c++是没有这些功能的。 二、异常处理 try:检查 catch:捕捉 throw:抛出 用法如下: try { //可 阅读全文

posted @ 2017-08-22 15:41 chakyu 阅读(292) 评论(1) 推荐(0)

C/C++ new/delete []、内存泄漏、动态数组
摘要:一、概念 new/delete是用于动态分配和撤销内存的运算符。new/delete是c++里才有的,c中是用malloc和free,c++虽然也可以用,但是不建议用。当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创 阅读全文

posted @ 2017-08-22 15:38 chakyu 阅读(529) 评论(1) 推荐(0)

C++ vector
摘要:一、概念 vector是C++标准模板库(STL)中的部分内容,它是一个多功能的、能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,能够存放任意类型的动态数组,可以广义上认为是数组的增强版。vector 容器与数组相比其优点在于 阅读全文

posted @ 2017-08-22 15:36 chakyu 阅读(150) 评论(1) 推荐(0)

C++ class、struct区别
摘要:一、默认访问控制不同(最主要) struct默认为public,class默认为private。这个访问控制既是指成员的默认访问属性,又指继承时默认的继承属性。 二、定义template时不同 在模版中,类型参数前面可以使用class或typename,如果使用struct,则含义不同,struct 阅读全文

posted @ 2017-08-22 15:32 chakyu 阅读(203) 评论(1) 推荐(0)

C++ const
摘要:一、作用 const是类型修饰符,经常用const来限制对一个对象或变量的操作,使用类型修饰符const说明的类型称为常类型,常类型的变量或对象的值是不能被更新的。const的用法很灵活,使用const将大大改善程序的健壮性。 二、用法 1.const常量 const int NUM=100; in 阅读全文

posted @ 2017-08-22 15:29 chakyu 阅读(156) 评论(1) 推荐(0)

C/C++ typedef
摘要:一、用途 1.定义一种类型的别名 typedef int ElementTpye; ElementTpye i;//相当于int i; typedef int* PInt(或者typedef int *PInt也一样); PInt i;//相当于int *i; 2.与struct结合,省略struc 阅读全文

posted @ 2017-08-22 14:32 chakyu 阅读(279) 评论(1) 推荐(0)

C/C++ union
摘要:一、概念 中文称为共用体或联合体。主要用于共享内存,在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。 在“联合”中,各成员共享一段内存空间, 阅读全文

posted @ 2017-08-22 14:26 chakyu 阅读(228) 评论(1) 推荐(1)

C/C++ static、extern
摘要:一、static本质作用 与static相对的关键字是auto,两者是一对。我们一般声明变量,如:int a,其实都是auto int a,只是auto省略了而已,但是static不能省略。要理解static,最好先理解auto。auto的含义是由程序自动控制变量的生存周期,通常是变量在进入其作用域 阅读全文

posted @ 2017-08-22 14:20 chakyu 阅读(175) 评论(1) 推荐(0)

C/C++ struct定义、声明、对齐方式
摘要:一、定义/声明方式 第一种:仅有结构体名,不定义/声明变量 struct MyStruct { int i; char a[10]; double b; };第二种:有结构体名,并声明变量名 struct MyStruct { int i; char a[10]; double b; }struct 阅读全文

posted @ 2017-08-21 21:56 chakyu 阅读(436) 评论(1) 推荐(0)

C/C++ char*、char[]
摘要:一、本质区别 char* s是一个保存字符串首地址的指针变量,char a[]是许多连续的内存单元,单元中的元素为char类型。之所以用char *能达到char []的效果,还是字符串的本质,即给你一个字符串地址,便可以随心所欲的操作它。但是,char*和char a[]的本质属性是不一样的。 当 阅读全文

posted @ 2017-08-21 21:51 chakyu 阅读(390) 评论(1) 推荐(0)

导航