指针的使用比较灵活,但也比较容易出错。
(1)在使用指针时,一定要注意指针与它所指变量的关联。如果只是定义一个指针,而没有给指针赋值(即,没有将指针所指变量进行关联),而直接给指针所指变量赋值时,即使在编译时不会出错,但在运行时必将发生运行时错误。
例如:
如果缺少第2条语句,则会发生错误:
int
*p=20;
(2)在使用用字符指针指向字符串是也需要很小心。
cout<<p;
cin>>p;
错误原因:指针p指向的是字符串常量,如果企图通过指向字符串的指针改变字符串常量的目的是达不到的。只能通过指向字符数组的指针改变字符数组中内容。
char
char *p;
p=str;
cin>>p;
cout<<p;
如果是以下形式,也会出错:
char *p
cin>>p;
错误原因和(1)一样
可以通过以下方式解决:
char *p=new
cin>>p;
(3)在使用指针进行对数组元素访问时,同样要注意数组元素访问越界问题。一定要时刻关注,当前指针变量所指向的元素位置,要保证指针在数组内的有效范围内移动。
(4)一定要弄清指针内容,和指针所指变量的内容 这两个概念。