1.auto:自动类型推导 编译时对变量进行类型推导,不会对程序的运行效率造成影响; 不会影响编译速度,因为编译时也要右侧推导,然后判断与左侧是否匹配; 通过初始化表达式进行类型推导。 2. decltype:从一个变量或表达式中得到类型 3. nullptr:空指针常量 解决C++中NULL的二义 ...
分类:
编程语言 时间:
2018-09-17 19:44:33
阅读次数:
245
当一个字符串常量出现在表达式中时,它的值是个指针常量。编译器把这些指定字符的一份拷贝存储在内存的某个位置,并存储一个指向第一个字符的指针。但是,当数组名用于表达式中时,它们的值也是个指针常量。我们可以对它们进行下标引用、间接访问以及指针运算。 这些操作对于字符串常量是不是也有意义呢? 看看下面这个表 ...
分类:
其他好文 时间:
2018-09-15 13:50:45
阅读次数:
164
1、常量指针(指针可改,指针指向的对象不可改) 常量指针本质是指针,用const修饰它,表示这个指针乃是一个指向常量的指针。指针指向的对象是常量,那么这个对象不能被更改。 表示方法: const int * ptr int const * ptr int a = 5; const int* c = ...
分类:
其他好文 时间:
2018-09-14 19:53:40
阅读次数:
113
总结: 指向常量的指针(底层const):不能通过解引用符来改变它所指向的内容 不代表它所指向的内容一定是常量 指针常量(顶层const):代表指针本身是常量,声明时必须初始化,之后它存储的地址值就不能再改变 常量的底层const不能赋值给非常量的底层const,拷贝时,拷入与拷出的对象必须具有相同 ...
分类:
其他好文 时间:
2018-09-12 23:01:53
阅读次数:
186
NULL在c++中是一个宏,是一个空指针常量,如果将NULL扩展为常数,那么这个数是0,类型为int。 所以,常数0既是整型常量,也是空指针常量,这就有可能导致二义性问题。因此,c++11新标准引入了 nullptr,将其作为空指针常量。 ...
分类:
编程语言 时间:
2018-09-02 01:59:59
阅读次数:
244
1.简述变量声明和定义的区别。 为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。 2.简述sizeof和strlen的区别 最常考察的题目之一。主要区别如下: ...
分类:
编程语言 时间:
2018-08-29 14:36:58
阅读次数:
183
1、常量指针(指针可改,指针指向的对象不可改) 常量指针本质是指针,用const修饰它,表示这个指针乃是一个指向常量的指针。指针指向的对象是常量,那么这个对象不能被更改。 表示方法: const int * ptr int const * ptr int a = 5; const int* c = ...
分类:
其他好文 时间:
2018-08-26 11:55:34
阅读次数:
157
char* a = "hello"; 和 char a[] = "hello"; 的区别: 1、 char* a = "hello"; 中的a是指向第一个字符h的的指针变量。 第2行说明a所指向的字符串是在静态存储区的,无法修改。 所以可以在静态存储区的变量前加const来防止对其修改,在编译时就可 ...
分类:
其他好文 时间:
2018-08-26 11:47:18
阅读次数:
190
常量指针:指向常量的指针,地址可变,内容不可变。eg: 指针常量:指针本身是常量,地址不可变,内容可变。eg: ...
分类:
其他好文 时间:
2018-08-02 11:26:02
阅读次数:
181
1.知识点 1.1指针常量——指针类型的常量 (1)指针常量本质是常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。 (2)在指针常量中,指针的值不可变,即始终指向同一个地址。 (3)但指针所指向的地址的值是可以通过*p来改变的。 用法如下: 1.2常量指针——指向常量的指针 (1)常量 ...
分类:
其他好文 时间:
2018-06-18 13:59:14
阅读次数:
179