[C++ 学习] C++ Primer 习题 4.36 指针数组 & 数组指针
2012-04-06 18:11
423 查看
这个习题需要注意以下知识点:
1.
int *ip[4]; // array of pointers to int
这样的表达式理解为指针数组,即
这本身是个数组,这个数组中每个元素的内容 是一个指针.
但是,如果要声明一个指针,这个指针指向一个数组,如何声明呢?
这需要下面的表达式:
int (*ip)[4]; // pointer to an array of 4 ints
这可以理解为 数组指针,即
这本身是个指针,这个指针所指向的内容,是一个 具备4个int 元素的 数组。
2.
可以用 typedef 来定义 数组指针
typedef int int_array[4];
这样,当出现
int_array *ip;
就表示声明了一个 数组指针,即
ip 是一个指针,这个指针指向的内容,是一个具备4个int 元素的 数组。
数组指针这样的用法,可以用于遍历 2维数组。
通过下面习题中的代码,可以仔细体会一下 数组指针的用法。
1.
int *ip[4]; // array of pointers to int
这样的表达式理解为指针数组,即
这本身是个数组,这个数组中每个元素的内容 是一个指针.
但是,如果要声明一个指针,这个指针指向一个数组,如何声明呢?
这需要下面的表达式:
int (*ip)[4]; // pointer to an array of 4 ints
这可以理解为 数组指针,即
这本身是个指针,这个指针所指向的内容,是一个 具备4个int 元素的 数组。
2.
可以用 typedef 来定义 数组指针
typedef int int_array[4];
这样,当出现
int_array *ip;
就表示声明了一个 数组指针,即
ip 是一个指针,这个指针指向的内容,是一个具备4个int 元素的 数组。
数组指针这样的用法,可以用于遍历 2维数组。
通过下面习题中的代码,可以仔细体会一下 数组指针的用法。
#include<iostream> #include<vector> #include<string> using std::cin; using std::cout; using std::endl; using std::string; using std::vector; int ia[3][4]={{0,1,2,3,}, {4,5,6,7,}, {8,9,10,11},}; int main() { for(int (*p)[4] = ia;p != ia+3;p++) { for(int *q = *p;q != *p + 4;q++) { cout << *q <<endl; } } return 0; }
相关文章推荐
- [C++学习] C++ Primer 第4版 习题4.28 C++动态数组
- C++ Primer学习笔记2--c++中的数组和指针
- [C++ 学习] C++ Primer 第4版 习题 4.30 字符串操作 & 我对堆内存 和 常量区内存的一些理解
- [C++ 学习] C++ Primer 习题 5.30 new & delete 操作符
- [c++学习] C++ primer 第4版 习题4.20 4.21 常量指针 和 指针常量
- 【C++学习】指针数组,数组指针,以及函数指针,以及堆中的分配规则--有是一篇好文章,收到自己门下 慢慢学习
- C++学习笔记之数据类型(2)数组、向量、指针
- 指针数组、数组指针、函数指针、指针函数总结C++
- 【C++学习笔记】数组和指针再C-风格字符串的演示
- C++ 指针数组与数组指针汇总
- c++ 指针值和指针地址的输出&指针和数组保存字符串的区别
- C++引用数组,函数指针,函数指针数组,结构体数组等学习
- C程序设计语言(K&R)学习笔记--8.指针与数组
- c++ primer 第五版学习笔记-第6章-返回数组指针的函数和函数指针的数组
- 学习C/C++语言:数组和指针,数组的转置
- C++基础学习系列第一部分——再议数组与指针
- C++内存管理——指针&&数组
- 《C++ Primer》学习 之 返回数组的引用(返回数组的指针,方法与之相同)
- [C++学习] C++ Primer 第4版 习题4.18
- C++ primer(七)--函数、C++的编程模块 函数指针 函数指针数组 typedef