本节大意
回顾了C语言中指针的相关知识
细节摘录
1. C++使用迭代器替代指针,使用string类型取代C风格字符串。
2. 不允许使用空指针操纵它所指向的对象,它只用来暂存地址。
3. 指针和引用的区别:a. 指针可以为空,但引用永远指向某个对象 b. 引用一经初始化,就必须始终指向某个对象。
4. 指针减法操作的结果的类型是ptrdiff_t。
5. 指针和数组具有很大的相似性.
6. 区分常量指针和指向常量的指针。
课后习题
1. 用前一种。后一种容易引起误解,见P101.
2. b c d 非法
3. 没有办法确定。
4. 空指针可以用来暂存任何类型变量的地址
5.
7. i,j均乘以i。
8. p1将会赋值以p2,当p2指向p1后面的元素的时候,这个语句就是非法的。
9.
10. bce都不科学
11. d不合法
12. 略
回顾了C语言中指针的相关知识
细节摘录
1. C++使用迭代器替代指针,使用string类型取代C风格字符串。
2. 不允许使用空指针操纵它所指向的对象,它只用来暂存地址。
3. 指针和引用的区别:a. 指针可以为空,但引用永远指向某个对象 b. 引用一经初始化,就必须始终指向某个对象。
4. 指针减法操作的结果的类型是ptrdiff_t。
5. 指针和数组具有很大的相似性.
6. 区分常量指针和指向常量的指针。
课后习题
1. 用前一种。后一种容易引起误解,见P101.
2. b c d 非法
3. 没有办法确定。
4. 空指针可以用来暂存任何类型变量的地址
5.
#include <iostream>
using namespace std;
int main()
{
int *i=NULL;
int a=1;
int b=2;
i = &a;
cout << "i: " << i << endl << "a: " << a << endl;
i=&b;
*i=3;
cout << "i: " << i << endl << "b: " << b << endl;
return 0;
}
6. 见细节摘录3
7. i,j均乘以i。
8. p1将会赋值以p2,当p2指向p1后面的元素的时候,这个语句就是非法的。
9.
#include <iostream>
using namespace std;
int main()
{
int a[5]={1,2,3,4,5};
cout << "Array a : " << endl;
for (int i=0; i<5; i++) {
cout << a[i] << " ";
}
cout << endl;
cout << "Converting ........" << endl;
int *b=a;
for (int *b=a, *c=a+5; b!=c; b++) {
*b = 0;
}
for (int i=0; i<5; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
运行结果
10. bce都不科学
11. d不合法
12. 略