- 字符 '0' 和 '\0' 及整数 0 的区别:字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节(8 位二进制数)。字符 '0':char c = '0'; 它的 ASCII 码实际上是 48,内存中存放表示:00110000。字符 '\0': ASCII 码为 0,表示一个字符串结束的标志。这是转义字符(整体视为一个字符)。由于内存中存储字符,依然是存储的是对应字符集的字符编码,所以内存中的表现形式为 00000000。整型 int 在内存中占用空间为四个字节,表示为 00000000 00000000 00000000 00000000,虽然都是 0,但是跟上面字符 '\0' 存储占用长度是不一样的。
- C++中 "\n" 与 endl 的区别是什么?"\n" 表示内容为一个回车符的字符串。std::endl 是流操作子,输出的作用和输出 "\n" 类似,但可能略有区别。std::endl 输出一个换行符,并立即刷新缓冲区。
std::cout << std::endl;
相当于:
std::cout << '\n' << std::flush;
或者
std::cout << '\n'; std::fflush(stdout);
- 对于有输出缓冲的流(例如cout、clog),如果不手动进行缓冲区刷新操作,将在缓冲区满后自动刷新输出。不过对于 cout 来说(相对于文件输出流等),缓冲一般体现得并不明显。但是必要情况下使用 endl 代替 '\n' 一般是个好习惯。对于无缓冲的流(例如标准错误输出流cerr),刷新是不必要的,可以直接使用 '\n'。在没有必要刷新输出流的时候应尽量使用 cout << '\n',过多的 endl 是影响程序执行效率低下的因素之一。
- 由于流操作符 << 的重载,对于 '\n' 和 "\n",输出效果相同。
- 在声明类的同时定义的对象是一种全局对象,在它的生存期内任何函数都可以使用它。但有时使用它的函数只在极短时间对它进行操作,而它却总是存在,直到整个程序运行结束,因此,容易导致错误和混乱。而采用使用时再定义对象的方法可以消除这种弊端,建议尽可能使用这种方法来定义对象。
- 堆对象的生存期是整个程序的生命期,所以,只有当程序运行结束时,堆对象才被删除。
- 使用静态成员函数的一个原因是,可以用它在建立任何对象之前处理静态数据成员,这是普通成员函数不能实现的功能。编译系统将静态成员函数限定为内部连接,也就是说,与现行文件相连接的其他文件中的同名函数不会与该函数发生冲突,维护了该函数使用的安全性,这是使用静态成员函数的另一个原因。
- 友元关系是单向的,不具有交换性,即类A中将类B声明为自己的友元类,但类B中没有将A声明为友元类,所以类A的成员函数不可以访问类B的私有成员。当两个类都将对方声明为自己的友元时,才可以实现互访。友元关系也不具备传递性,即类A将类B声明为友元,类B将类C声明为友元,此时,类C不一定是类A的友元。
- int main(void)在C++(不是C)中,让括号空着与在括号中使用void等效(在C中,让括号空着意味着对是否接受参数保持沉默)。
- 最后,ANSI/ISO C++标准对那些抱怨必须在main()函数最后包含一条返回语句过于繁琐的人做出了让步。如果编译器到达main()函数末尾时没有遇到返回语句,则认为main()函数以如下语句结尾:
return 0;
这条隐含的返回语句只适用于main()函数,而不适用于其他函数。
- 注意:使用cin和cout进行输入和输出的程序必须包含文件iostream。
- 通常的约定是,退出值为0则意味着程序运行成功,为非零则意味着存在问题。
- 总之,让程序能够访问名称空间std的方法有很多种,下面是其中的4种:
- 将
using namespace std;
放在函数定义之前,让文件中所有的函数都能够使用名称空间std中所有的元素。 - 将
using namespace std;
放在特定的函数定义中,让该函数能够使用名称空间std中的所有元素。 - 在特定的函数中使用类似
using std::cout;
这样的编译指令,而不是using namespace std;
,让该函数能够使用指定的元素,如cout。 - 完全不使用编译指令using,而在需要使用名称空间std中的元素前使用前缀std::。
- C++对于变量名名称的长度没有限制,名称中所有的字符都有意义,但有些平台有长度限制。这一点使得C++与ANSI C(C99标准)有所区别,后者只保证名称中的前63个字符有意义(在ANSI C中,前63个字符相同的名称被认为是相同的,即使第64个字符不同)。
- C++提供了大量的整型,应使用哪种类型呢?通常,int被设置为对目标计算机而言最为“自然”的长度。自然长度(natural size)指的是计算机处理起来效率最高的长度,这意味着计算机使用这种类型时,运算速度可能最快。如果没有非常有说服力的理由来选择其他类型,则应使用int。
- 如果short比int小,则使用short可以节省内存。通常,仅当有大型整型数组时,才有必要使用short。如果节省内存很重要,则应使用short而不是使用int,即使它们的长度是一样的。例如,假设要将程序从int为16位的系统移到int为32位的系统,则用于存储int数组的内存量将加倍,但short数组不受影响。请记住,节省一点就是赢得一点。
- 与int不同的是,char在默认情况下既不是没有符号,也不是有符号。是否有符号由C++实现决定。
- wchar_t类型是一种整数类型,它有足够的空间,可以表示系统使用的最大扩展字符集。这种类型与另一种整型(底层(underlying)类型)的长度和符号属性相同。对底层类型的选择取决于实现,因此在一个系统中,它可能是unsigned short,而在另一个系统中,则可能是int。
- C++11新增了类型char16_t和char32_t,其中前者是无符号的,长16位,而后者也是无符号的,但长32位。C++使用前缀u表示char16_t字符常量和字符串常量,如u'C'和u"be good";并使用前缀U表示char32_t常量,如U'R'和U"dirty rat"。
- 如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改。
const int toes; // value of toes undefined at this point
toes = 10; // too late!
扫码关注公众号,查看更多精彩内容
标签:std,字符,函数,int,使用,笔记,C++,004 From: https://www.cnblogs.com/bobbycheng/p/18079749