- 博客(32)
- 收藏
- 关注
翻译 C++ new delete
在C语言中,可以用库函数malloc( )来分配内存;在C++中仍然可以这样做,但C++还有更好的方法—new运算符。其实new也是使用malloc()来实现不要使用delete来释放不是new分配的内存。不要使用delete释放同一个内存块两次。如果使用new [ ]为数组分配内存,则应使用delete [ ]来释放。如果使用new [ ]为一个实体分配内存,则应使用delete(没有...
2019-07-20 23:42:22
171
翻译 C++指针注意
int *p1,p2;//创建一个指针(p1)和一个int变量(p2)数组元素指针相减得到的是两个元素的间隔&arr[1]-&arr[2] = 1;在cout和多数C++表达式中,char数组名、char指针以及用引号括起的字符串常量都被解释为字符串第一个字符的地址。...
2019-07-20 23:41:24
151
翻译 枚举常量enum
枚举类型可以装换为int类型,但是int类型不能转换为枚举类型。(在C++早期的版本中,只能将int值(或提升为int的值)赋给枚举量,但这种限制取消了,因此可以使用long甚至long long类型的值。)在不进行强制类型转换的情况下,只能将定义枚举时使用的枚举量赋给这种枚举的变量对于枚举,只定义了赋值运算符。具体地说,没有为枚举定义算术运算:枚举的规则相当严格。实际上,枚举更常被用...
2019-07-20 23:35:16
483
翻译 结构体注意点
C++不提倡使用外部变量,但提倡使用外部结构声明。另外,在外部声明符号常量通常更合理。结构的初始化与数组类似,用逗号分隔:inflatable guest = {"aaaa",1.25,55};//等号时可选的,如果大括号不包含内容,各部分都会初始化为零,另外不允许缩窄转换。可以使用赋值运算符(=)将结构赋给另一个同类型的结构,这样结构中每个成员都将被设置为另一个结构中相应成员的值,即使...
2019-07-20 23:34:54
188
原创 声明结构变量时C++中可以省略结构struct
string Astruct{...;};Astruct a;//C++struct Astruct a;//C或C++所以有时候就不用使用typedef了
2019-07-20 23:34:34
1730
翻译 std::string与数组字符串
可以使用数组表示法来访问存储在string对象中的字符。string str = "1235165";char ch = str[0];数组字符串之间赋值与拼接#include <cstring>strcpy(arr1,arr2);//将arr2赋给arr1strcat(arr1,arr2);//将arr2拼接在arr1后面上面两种方式可能会导致越界,...
2019-07-20 23:34:08
2400
翻译 cin的>> get() getline()
1、cin可以流向数组:cin>>arr;问题:这样遇到空白字符则会停止,所以可以使用cin.getline()或cin.get()函数2、cin.getline():getline( )函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。要调用这种方法,可以使用cin.getline( )。该函数有两个参数。第一个参数是用来存储输入行的数组的名称,第二个参数是要读取...
2019-07-20 23:33:46
123
原创 数组的初始化为0
数组初始化时候,如果未全部指定,其余部分将默认设置为0如:int a[100];//所有元素都是未知值int a[100] = {1};//第一个元素为1,其余元素都是0int a[100] = {};//所有元素都会初始化为0使用{}初始化时候,=可以省略...
2019-07-20 23:33:22
14646
原创 sizeof用于数组名时,得到的是整个数组的大小
1、通过使用sizeof可以获取类型或者变量的大小2、数组名时候我们可以看做指针,但是有不同点:数组名是常量指针,不可以改变它的值;sizeof用于数组名时,得到的是整个数组的大小(与指针不同);数组名a+1,等同于&a[1];&a+1,等同于a+sizeof(a);//&a相当于二位数组,所以+1是加了sizeof(a)...
2019-07-20 23:32:43
1291
翻译 c++强制数据类型装换方法
1、(long)a;//C风格2、long(a);//C++风格3、static_cast<long>(a) ;//C++风格运算符static_cast<>比传统强制类型转换更严格。先进行类型转换和先进行计算的结果可能会不一样:11.99+12.99结果保存为整数先转换结果为:23先计算再转换结果为:24...
2019-07-19 11:36:00
193
翻译 C++常规类型自动类型转换规则
(1)如果有一个操作数的类型是long double,则将另一个操作数转换为long double。(2)否则,如果有一个操作数的类型是double,则将另一个操作数转换为double。(3)否则,如果有一个操作数的类型是float,则将另一个操作数转换为float。(4)否则,说明操作数都是整型,因此执行整型提升。(5)在这种情况下,如果两个操作数都是有符号或无符号的,且其中一个...
2019-07-19 11:24:49
1114
1
翻译 浮点数运算时的不正确的问题
11.17加上50.25应等于61.42,但是输出中却是61.419998。这不是运算问题;而是由于float类型表示有效位数的能力有限。记住,对于float,C++只保证6位有效位。如果将61.419998四舍五入成6位,将得到61.4200,这是保证精度下的正确值。如果需要更高的精度,请使用double或long double。浮点常量在默认情况下为double类型...
2019-07-19 10:58:25
1063
原创 const常量,一般约定首字母大写
C++中能用const就不要用#defiineconst限定该常量只能在当前文件模块中使用const必须初始化,切不允许再修改
2019-07-19 10:42:25
1265
翻译 C++中wchar_t类型的大小(由系统underlying的长度和符号属性而定)
wchar_t类型是一种整数类型,它有足够的空间,可以表示系统使用的最大扩展字符集。这种类型与另一种整型(底层(underlying)类型)的长度和符号属性相同。对底层类型的选择取决于实现,因此在一个系统中,它可能是unsigned short,而在另一个系统中,则可能是int。cin和cout将输入和输出看作是char流,因此不适于用来处理wchar_t类型。iostream头文件的最新版本...
2019-07-19 10:29:46
2494
翻译 基于字符的八进制和十六进制编码来使用转义序列
Ctr+Z的ASCII码为26,对应的八进制编码为032,十六进制编码为0x1a。可以用下面的转义序列来表示该字符:\032或\x1a。将这些编码用单引号括起,可以得到相应的字符常量,如'\032',也可以将它们放在字符串中,如"hi\x1a there"。...
2019-07-19 01:38:09
1139
原创 ASCII、EBCDIC、Unicode字符集使用的值不同
编码只是对字符保存和解析时候的规则,我们应该保证同一种规则保存,然后用同一个规则解析。否则就会因为编码格式不同而导致乱码!char ch;cin>>ch;cout<<ch;程序中输入的是M,而不是对应的字符编码77。另外,程序将打印M,而不是77。通过查看内存可以知道,77是存储在变量ch中的值。这种神奇的力量不是来自char类型,而是来自cin和cout,...
2019-07-19 01:08:50
2070
翻译 修改cout的显示整数的格式
头文件iostream提供了控制符endl,用于指示cout重起一行。同样,它还提供了控制符dec、hex和oct,分别用于指示cout以十进制、十六进制和八进制格式显示整数。默认格式为十进制,在修改格式之前,原来的格式将一直有效。如cout<<hex;等代码不会在屏幕上显示任何内容,而只是修改cout显示整数的方式。因此,控制符hex实际上是一条消息,告诉cout采...
2019-07-19 00:53:38
368
翻译 关于有无符号整形的上溢和下溢
一个short变量从32767+1变成了−32768!同样,对于一个unsigned short变量,将其设置为0并减去后,它变成了65535。可以看出,这些整型变量的行为就像里程表。如果超越了限制,其值将为范围另一端的取值(参见图)。C++确保了无符号类型的这种行为;但C++并不保证符号整型超越限制(上溢和下溢)时不出错,而这正是当前实现中最为常见的行为。...
2019-07-19 00:35:04
760
原创 C++变量初始化方法
右值可以是常量、变量、表达式等,只要运行到该部时,右值时确定的就可以。C++较C语言新增的一个初始化方法:int wrens(112);另外还有使用{}:int wrens = {112};int wrens{112};//省略=int wrens = {};//空则初始化为0int wrens{};//同样省略=注意:一般对数据或结构初始化较多使用{},对单值变量初...
2019-07-19 00:16:22
1792
翻译 c++中short int long long long 的宽度
short至少16位;int至少与short一样长;long至少32位,且至少与int一样长;long long至少64位,且至少与long一样长。
2019-07-18 23:48:58
304
翻译 变量名尽量不要使用__或者_打头
以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。...
2019-07-18 23:44:22
599
翻译 应该在首次使用函数前提供它的原型
应在首次使用函数之前提供其原型。通常的做法是把原型放到main( )函数定义的前面。也可以写在.h文件里面,在文件开头include,它通过.h文件来提供函数的原型:...
2019-07-18 23:14:39
141
翻译 \n和endl的区别
通常使用换行符\n,在其他情况下则使用控制符endl。一个差别是,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);而使用“\n”不能提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示。备注:endl --->end line...
2019-07-18 22:22:57
1882
翻译 using namespace影响太大,可以直接指出using 命令空间中的某些函数
using std::cout;using std::cin;using std::endl;int main(){ ...}
2019-07-18 22:16:22
134
翻译 rebuild解决无解错误
有时,编译器在不完全地构建程序后将出现混乱,它显示无法改正的、无意义的错误消息。在这种情况下,可以选择Build All,重新编译整个程序,以清除这些错误消息。遗憾的是,这种情况和那些更常见的情况(即错误消息只是看上去无意义,实际上有意义)很难区分。...
2019-07-18 21:37:44
1362
原创 shell脚本程序
#!/bin/sh #以#!开头,后面指定的是运行本文件的程序(必须同一行) #其他#号开头的就是注释,为了和老版本兼容,注释不要超过32个字符 for file in * do if grep -q POSIX $file then echo $file fi done exit 01、shell里面可以引用所有在PATH中能找到的lin
2017-05-04 22:50:35
277
原创 shell中通配符的简单应用
* 匹配一个字符串 ? 匹配一个字符 [abc] 匹配括号里面的任意一个字符 [^abc] 匹配非括号中的任意一个字符 {string1,string2} 匹配括号面的任一字符串(并不是所有shell都支持,bash是支持的) more $(grep -l POSIX *) grep -l POSIX * | more 上面两行都是查找当前文件夹所有文件中含POSIX字符串的
2017-05-04 21:47:25
273
原创 shell中输入重定向,输出重定向,管道
什么是文件描述符 1、进程中打开一个文件就会有一个文件描述符 2、文件描述符是一个非负整数 3、系统为每一个进程维护一个文件描述符表(进程级文件描述符) 4、同一个进程里面不同文件描述符可以对应同一个文件(一个文件被打开多次) 5、不同进程的文件描述符可以相同(不影响),可以指向同一个文件,也可以指向不同文件 标准文件描述符 进程启动就打开的文件描述符 0:标准输入文件描述符 1:
2017-05-04 17:27:26
511
原创 shell是一个用户与内核的交互程序
与linux交互——shell(通常是bash),个人理解,它是一个在指定的一组目录(环境变量)下按照你给出的程序名字搜索与之同名的文件的应用程序。 /etc/rc.d/目录中有用于启动时配置系统的shell脚本程序。 shell其实就是外壳,和操作系统内核是对应,用户通过shell可以访问操作系统内核。
2017-05-04 14:30:30
1446
原创 Linux下软件安装目录
自己安装的系统级软件最好安装或者解压到: /opt /usr/local 自己安装的用户级软件最好安装或解压到: /home/….. 系统存放启动系统时候要用的程序: /bin 系统存放系统提供的程序: /sur/bin
2017-04-20 00:13:50
290
原创 为什么QUdpSocket只能收一次?原来是因为
当你定义了QUdpSocket对象并且连接了readyRead信号和自定义的接收处理槽:connect(udpsocket,SIGNAL(readyRead()),this,SLOT(udpreceive()));接受处理槽:void MainWindow::udprecerive(){qDebug()}你会发现只能触发一次,原因是你并没有提取掉上次收到的内容,如果你把
2017-03-18 15:26:50
4641
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人