- 博客(27)
- 资源 (11)
- 收藏
- 关注
原创 C++中string类型转换成char *类型
这是在写项目时发现的问题,string类型变量不能直接赋值给char *类型的变量怎么解决这个问题呢?这里应到了一个函数c_str()例如: string s; char *p = s.c_str(); //把string类型转换成char *类型
2017-02-25 22:06:15 735
原创 C++编程,输入密码时显示*号
分享一下通用模板:#include //包含头文件 string password; //真正的密码存放处 char pw[50],ch; printf("请输入密码:"); i = 0; while((ch = _getch()) != '\r') {
2017-02-25 21:58:51 6676
原创 6、面向对象的基本概念
1、基本概念 类和对象是面向对象中的两个基本概念 “类”指的是一类事物,是一个抽象的概念 “对象”指的是属于某个类的一个实体,是一个具体存在的事物 ——类是一种“模板”, 可以通过这种模板创建出不同的对象“实例” ——对象“实例”是类“模板”的一个具体实现 ——一个类可以有很多对象,而一个对象必然属于某个类
2017-02-22 20:25:05 366
原创 3.1、宏定义和使用分析
1、#define定义宏常量可以出现在代码的任何地方2、#define从本行开始,之后的代码都可以使用这个宏常量3、#define表达式给有函数调用的假象,却不是函数4、#define表达式可以比函数更强大5、#define表达式比函数更容易出错6、宏表达式与函数的对比 ·宏表达式在预编译期被处理,编译器不知道表达式的存在 ·宏表达式用“实参”完全替代形参,
2017-02-22 20:23:21 263
原创 5、专题一经典问题解析
1、const和引用的疑惑 #include int main() { const int x = 1; //真正意义上的常量 int& rx = const_cast(x); rx = 5;
2017-02-21 21:45:27 290
原创 2.7、优先级和类型转换分析
1、警示:易错的优先级 2、C语言隐式类型转换 ·算术运算式中,低类型转换为高类型 ·赋值表达式中,表达式的值转换为左边变量的类型 ·函数调用时,实参转换为形参的类型 ·函数返回值,return表达式转换为返回值类型
2017-02-21 20:00:22 275
原创 2.6、++和--操作符
1、int i = 3; (++i) + (++i) + (++i) = ? //C语言中的灰色地带 第一种编译器结果18 6+6+6 第二种编译器结果16 5+5+(++i) gcc g++ 2、逗号表达式 int x = 3; int k = (++x, x++, x+10); 从左到右的顺序求
2017-02-21 13:15:29 272
原创 4、C++中新的关键字
1、C++中的动态内存分配 C++中通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字用于内存释放 变量申请: Type* pointer = new Type; //...... delete pointer; 数组申请:
2017-02-20 18:08:31 399
原创 2.5、位运算分析
1、~ 按位取反 & 按位与 | 按位或 ^ 按位异或 2、结合律 a&b&c (a&b)&c a&(b&c) 交换律 a&b b&a 3、左移和右移注意点 ·左移运算符 ·规则:高位丢弃,低位补0 ·右移运算符>> 把运算符的二进制位右移 ·规则
2017-02-20 16:13:20 288
原创 关于装msdn网站纯净版win7正版授权问题(已解决)
1、用软通牒软件制作启动U盘2、设置bios从U盘启动3、安装好的系统是没有网卡驱动的,需要从官网下载网卡驱动,以便连网更新驱动4、我一般装的系统是用KMS神龙版破解激活,不过win7不能直接激活5、需要下载5-DBSLDR.exe,以管理员身份运行,安装6、再下载SLICDumpTooIKit.exe,查看安装是否成功7、最
2017-02-19 23:09:54 2753
原创 在二级上机题中发现conio.h
conio.h不是C标准库中的头文件,在C standard library,ISO C 和POSIX标准中均没有定义。conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。 大部分DOS,Windows 3.x,Phar Lap,D
2017-02-19 22:56:49 266
原创 3、函数的升级(下)
1、重载 同一个标识符在不同的上下文有不同的意义 2、函数重载 同一个函数名定义不同的函数 当函数名和不同的参数搭配时函数的含义不同 int func(int x) int func(int a, int b) int func(char *s) 3、函数重载至少满足下面的一个条件:
2017-02-19 15:17:25 203
原创 2.4、逻辑运算符的使用分析
1、int i = 0; int j = 0; if ( ++i > 0 || ++j > 0 ) { printf ("%d\n", i); printf ("%d\n", j); } i = 1; j = 0;2、程序中的短路 短路规
2017-02-19 13:37:21 344
原创 2、函数的升级(上)
1、const int A = 3; => #define A 32、C++中推荐使用内联函数替代宏代码片段3、C++中使用inline关键字声明内联函数 inline int func(int a, int b) { return a }4、内联函数声明时inline关键字
2017-02-18 17:13:35 233
原创 2.3、单引号和双引号
1、低位的地址是给操作系统用的2、char *p1 = 1; //p1指向地址为1的内存 (给操作系统用) char *p2 = '1'; //p2指向地址为49的内存 (给操作系统用) char *p3 = "1"; //p2指向字符串首地址,字符1的地址 p1和p2指向了不该指的地方,形成野指针
2017-02-18 13:58:09 525
原创 2.2、接续符和转义符
1、C语言中的接续符(\)是指示编译器行为的利器2、接续符的使用: (1).编译器会将反斜杠剔除,跟在反斜杠后面的字符自动解到前一行 (2).在连接单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格 (3).接续符适合在定义宏代码块时使用#define SWAP(a,b) \{
2017-02-17 22:06:39 450
原创 2.1、注释符号
1、编译器会在编译过程删除注释,但不是简单的删除而是用空格代替 int/*.......*/i; 编译通过 in/*..........*/t i; 编译不可行2、编译器认为双引号括起来内容都是字符串,双斜杠也不例外3、"/*...........*"型注释不能被嵌套4、写注释不是和人聊QQ,一定要准确有用,避免晦涩和臃肿
2017-02-16 22:28:03 375
原创 1、C++中的引用
1、true代表真值,编译器内部用1来表示2、false代表假值,编译器内部用0来表示3、理论上bool只占用一个字节4、bool类型只有true(非0)和false(0)两个值5、C++编译器会在赋值时将非0值转换为true,0值转换为false6、在c语言中,三目运算符返回的是变量值,不是变量,不能作为左值7、在c++中,三目运算符返回的变量本身,可以作为左值8
2017-02-15 21:11:56 272
原创 1.7、enum、#define和typedef的注意点
1、enum默认常量在前一个值的基础上加12、enum类型的变量只能取定义时的离散值3、enum color { GREEN, RED, BULE }; GREEN == 0, RED == 1, BULE == 24、enum定义的常量才是真正意义的常量5、枚举类型和#d
2017-02-15 16:19:36 329
原创 1.6、struct和union
1、在程序中可以定义一个空结构体2、空结构体的大小和编译器有关3、柔性数组即数组大小待定的数组4、C语言中结构体的最后一个元素可以是大小未知的数组5、C语言可以由结构体产生柔性数组 struct soft{ int len; int array[]; }6、 gcc编译时size
2017-02-13 22:01:28 167
原创 1.5、const和volatile深度理解
1、在C语言中const修饰的变量是只读的,其本质还是变量2、const修饰的变量会在内存占用空间3、本质上const只对编译器有用,在运行时无用4、不能直接改变const变量的值,要用指针改变5、const int cc = 1; int *p = (int *)&cc; p = 3;6、在语言中const修饰的数组是只读的7、const修
2017-02-10 22:58:34 222
原创 1.4、goto、void、extern、sizeof剖析
1、goto破坏了c语言顺序执行的规则2、void修饰函数返回值和参数仅为了表示无3、没有void的标尺,无法在内存中裁剪出void对应的变量(灰色替代)4、编译器厂商规定的void为1个字节(不可信)5、C语言规定只有相同类型的指针才可以相互赋值6、void*指针作为左值用于"接收"任意类型的指针7、void*指针作为右值赋
2017-02-09 22:51:48 362
原创 1.3、if、switch、break、continue、bool、float精度和函数设计注意点
1、严格来说C语言中是没有bool类型的2、typedef enum _bool { FALSE, TRUE }BOOL;3、if判断条件只是0或者非04、预防手误 if ( 0 == i )5、float型变量不能直接进行0值比较,需要定义精度
2017-02-09 21:47:08 379
原创 深入理解数据类型、变量属性、内存四区和指针
数据类型可理解为创建变量的模具(模子);是固定内存大小的别名。数据类型的作用:编译器预算对象(变量)分配的内存空间大小。既能读又能写的内存对象,称为变量;若一旦初始化后不能修改的对象则称为常量。变量本质:(一段连续)内存空间的别名。内存四区栈区(stack):也叫临时区,由编译器自动分配释放,存放函数的参数值,局部变量的值等。堆区(heap):一
2017-02-08 14:42:02 407
原创 1.2、关键字auto、static、register的精华
1、auto即C语言中局部变量的默认属性 编译器默认所有的局部变量都是auto的 (栈区)2、static修饰的全局变量作用域只是声明的文件中 static修饰的函数作用域只是声明的文件中 static修饰的局部变量存储在(程序静态区) static的另一个意义是文件作用域标示符 静态局部变量只会被初始化一次3、regis
2017-02-08 14:24:49 267
原创 1.1、数据类型和变量深度理解
1、数据类型可以理解为固定内存大小的别名2、数据类型是创建变量的模子3、变量的本质是一段实际连续存储空间的别名4、程序中通过变量来申请并命名存储空间5、通过变量的名字可以使用存储空间
2017-02-08 14:17:15 260
原创 C语言中结构体变量内存对齐
首先看下面一段代码:#include typedef int INT32;typedef unsigned char BYTE;typedef struct demo{ double s; BYTE b1; BYTE b2; INT32 i;}DEMO;int main(){ double i32;
2017-02-07 23:06:00 339
基于STM32车牌识别系统资料V1.0_Ricky(1).zip
2020-05-26
计算机系统安装与故障维护
2016-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人