指针 1. 取地址运算符和取值运算符: 取地址运算符“&”:返回变量所在的地址。一般用于变量。(而数组名本身就是指针,无需“&”) 取值运算符“*”:返回地址对应的值,或用于改变指针所指内存空间的值。只能用于指针。 2. 指针的意义:保存另一个变量的内存地址。 3. 定义指针:int*p; 定义多个指针时,每个字母的前面都要有“*”。 注意,如果p没有被初始化,它就会指向一个未知的内存空间,而错误地操作内存会导致程序崩溃! 4. 指针使用实例: int a = 0, b = 1; int c[] = {1,2,3,4,5,6,7,8,9,10}; int *p; // 定义一个指针 p=&a; // 让p指向a (*p)=3; // 相当于a=3 (*p)=b; // 相当于a=b,此时a等于1 // p=b; // 非法操作,左边是int *,右边是int,类型不匹配。 p=&b; // 让p指向b,从此p和a没关系了 p=c+6; // 让p指向c[6],p和b又没关系了 cout<<*p; // 输出p指向的变量的值,即c[6] p++; // 现在p指向了c[7]; p=NULL; // 表示p没有指向任何变量 cout<<*p; // 由于NULL(0)是一段无意义的地址,所以程序极有可能崩溃。 |
为了不在竞赛中把自己搞晕,请回避指针,对其敬而远之。
|