- 对每个指针变量名,都需要一个
*
(间接值或解除引用运算符)。 *
运算符两边的空格是可以选的。C程序使用格式:
1
int *ptr; //这里强调*ptr是一个int类型的值
C++程序使用格式:
1
int* ptr; //这里强调int*是一个类型————指向int的指针
注意:在C++中,int*是一种复合类型,是指向int的指针。
一定要在对指针应用解除引用运算符(*)之前,将指针初始化,要不就会成为一个不确定的野指针。
指针不是整型,指针和整数是两个截然不同的类型,不允许直接像C一样直接赋于没有声明的整数内存地址;
1
2
3int* ptr;
ptr = 0xB8000000; //type mismatch
ptr = (int*)0xB8000000; //type now match
注意:ptr是int值的地址并不意味着ptr本身的类型是int!!!
对空指针使用delete是安全的。
在很多情况下,可以用相同的方式使用指针和数组名,因为C++将数组名解释为地址,区别之一是,可以修改指针的值,而数组名是常量。
1
2pointername = pointername + 1; //valid
arrayname = arrayname + 1; //not allowed
C++指针小结
squence实现间隔时间不同对象相同动作的实现方法
说说Javascript的bind()
>