彻底征服<<指针数组和指向数组的指针>>
2014-04-11 00:29
423 查看
以前我也看了很多有关指针的书籍,上面对数组指针和指针数组,做了很好的介绍。但大多数都是先给它们在定义的时候就赋初值,然后讲一下就完事儿,但在实际操作过程中,数据较大而且是不确定的,往往需要我们循环输入,其实,数组指针(*a[i])为多个指针,i值为指针的个数。指针数组((*a)[k])是一个二维数组,k表示二维数组的a[i][j]的j的值。因为是指针数组,所以在这儿i的值是可以变化的,所以有些资料也称指针数组为“可变长的二维数组”。
这时,对于数组指针,问题就产生了。多个指针我们应该怎样输入呢?请看下面的代码。
#include<stdio.h>
int main()
{
int i,n;
char *a[20]; // 定义一个指针数组;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i]=new char [30]; //给每个指针分配空间
scanf("%s",a[i]); //为每个指针输入信息,由于a[i]就是地址,所以不用&符号,这里要注意,否则在输出可能会出错的
}
for(i=0;i<n;i++)
printf("%s\n",a[i]); //输出
}
//是不是很简单吧?其实没有那么复杂
//接下来是指向数组的指针
#include<iostream> //这个很简单,和二维数组一样,只是需要对数组指针进行动态分配
using namespace std;
int main()
{
int (*a)[3]=new int [5][3]; //这儿的两个3必须一样,否则会出错
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cin>>a[i][j];
for(i=0;i<2;i++) //其实没有必要用这么多循环,为了表达清楚我的思想,所以用了这么多
for(j=0;j<3;j++)
cout<<a[i][j]<<endl;
}
这时,对于数组指针,问题就产生了。多个指针我们应该怎样输入呢?请看下面的代码。
#include<stdio.h>
int main()
{
int i,n;
char *a[20]; // 定义一个指针数组;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i]=new char [30]; //给每个指针分配空间
scanf("%s",a[i]); //为每个指针输入信息,由于a[i]就是地址,所以不用&符号,这里要注意,否则在输出可能会出错的
}
for(i=0;i<n;i++)
printf("%s\n",a[i]); //输出
}
//是不是很简单吧?其实没有那么复杂
//接下来是指向数组的指针
#include<iostream> //这个很简单,和二维数组一样,只是需要对数组指针进行动态分配
using namespace std;
int main()
{
int (*a)[3]=new int [5][3]; //这儿的两个3必须一样,否则会出错
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cin>>a[i][j];
for(i=0;i<2;i++) //其实没有必要用这么多循环,为了表达清楚我的思想,所以用了这么多
for(j=0;j<3;j++)
cout<<a[i][j]<<endl;
}
相关文章推荐
- <C/C++>指向指针的指针、指向数组的指针以及存放指针的数组
- <技术篇-技巧一>数组和指针并不相同
- error: 函数调用缺少参数列表;请使用“&BinTree<char>::_PrintNode”创建指向成员的指针
- 指向list 的指针 list<int> *pmylist = new list<int> [2];
- 一个类似auto_ptr<>用于动态分配数组的智能指针
- <<C语言深度剖析>>学习笔记之五:指针与数组
- <C基础>数组和指针
- java 之Sting类型的List集合的汉字排序和String类型数组的汉字排序及List<Bean>排序
- C/C++ 指针 <一>
- 黑马程序员 Java基础<一> 数组及排序
- <C 和指针>学习笔记
- Android中ArrayList<E>动态数组用法
- C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]数组各各的区别
- 黑马程序员_<<IO扩展对象和编码(序列化,管道流,字节(符)数组),随机访问文件>>
- 集合转换java:【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
- 数组问题之数组最值问题<Java实现>
- K&R的名著:<C程序设计语言>小程序总结7指针
- <android>MeasureSpec的彻底讲解
- List<String>与String数组之间的转换问题
- c++中bool数组与bitset,vector<bool>的使用与占用空间大小对比