1、函数指针指向的是函数,并非是对象。函数的类型由其返回类型和形参类型共同决定。而指针函数是指函数返回值是指针类型。 2、若想声明一个指向某个函数的指针,直接用指针替换掉函数名。 3、将函数名作为一个值使用时,会自动转换成指针。也可以直接使用函数指针调用所指向的函数,无需进行解引用。 4、定义了指向 ...
分类:
其他好文 时间:
2018-08-17 19:59:12
阅读次数:
141
概念:野指针指向了一块随机内存空间,不受程序控制。如指针指向已经被删除的对象或者指向一块没有访问权限的内存空间,之后如果对其再解引用的话,就会出现问题。 野指针产生的原因: 1、指针定义时未被初始化:指针在被定义的时候,如果程序不对其进行初始化的话,它会指向随机区域,因为任何指针变量(除了stati ...
分类:
其他好文 时间:
2018-08-11 22:01:46
阅读次数:
139
当类中的成员函数涉及到两个对象时,就需要用到this指针; 每个成员函数(包括构造和析构函数)都有一个this指针。this指针指向调用对象,如果需要引用整个调用对象,则可以使用表达式*this(解引用); 在函数括号后面添加const限定符,将this限定为const,禁止通过this来修改对象的 ...
分类:
编程语言 时间:
2018-08-07 12:48:01
阅读次数:
130
char * a=“hello” ; a是一个char类型的指针,指向第一个字符‘h’。不解引用时,printf(“%s”,a)输入一串字符,解引用时输入一个字符。 而能把字符串赋值给指针时因为对于字符串常量,编译器都是默认按其大小分配内存存放字符串,并把地址首地址赋值指针变量。如:char *p= ...
分类:
其他好文 时间:
2018-06-27 13:51:06
阅读次数:
155
这一节再续写一篇。因为要足够多的例子才能说清楚*这个符号。 * ,中国翻译为“解引用”,初听很拗口,实际上是非常贴切的翻译。如果将它翻译为取值,其实不好。 我们继续举例说明: void swap(int * ap, int* bp){ ap = bp; } int a = 5; int b = 6; ...
分类:
其他好文 时间:
2018-06-24 21:11:10
阅读次数:
188
例1 double d = 3.1416; char c = *(char*) &d; &d 拿到指向d的内存地址,根据内存的起始点不同,值不同。 (char*) 把它当做 (char*) 类型,也就是指向char的指针。 * 解引用:根据指向的地址的起始点,向后 拿 8bits(也就是 char的 ...
分类:
其他好文 时间:
2018-06-21 01:44:48
阅读次数:
227
指针是一个实体,存放地址,sizeof指针大小始终为4 引用只是一个别名,不额外占用内存,sizeof和变量一样 指针不需要初始化,野指针不能使用,可以为空,可以更改指向 引用必须初始化,不能为空,之后不可更改 引用使用不需要解引用,指针需要解引用 ++ 指针偏移 引用看情况 ...
分类:
其他好文 时间:
2018-06-04 14:15:32
阅读次数:
139
本文主要讲解javascript 的正则表达式中的分组匹配与前瞻匹配的,需要对正则的有基本认识,本人一直对两种匹配模棱不清。所以在这里总结一下,如有不对,还望大神指点。 1.分组匹配: 1.1捕获性分组匹配 () 2.2非捕获性分组匹配 (?:)2前瞻匹配: 2.1正向前瞻匹配: (?=表达式) 后 ...
分类:
编程语言 时间:
2018-05-30 01:16:28
阅读次数:
214
一、特殊运算符的重载1. 取值运算符:* "指针解引用运算符" 1)作用:让一个对象模拟指针的行为 2)重载方式: <1>成员函数方式 class A { B & operator * (void) const {...} }; <2>友元函数方式 class A { friend B & oper ...
分类:
其他好文 时间:
2018-05-19 22:35:14
阅读次数:
181
3.5.1定义和初始化内置数组 1.维度必须是常量 constexpr unsigned x = 5; 3..5.2访问数组元素 1.在使用数组下标时,一般将下标声明为size_t 2.不能对尾指针使用解引用或者递增操作。 3.两指针相减的结果是一种类型为ptrdiff_t的标准库类型和size_t ...
分类:
编程语言 时间:
2018-05-19 17:00:40
阅读次数:
197