C++指针数组和数组指针--笔试面试系列
2013-08-28 22:08
211 查看
一、 int main(int argc, _TCHAR* argv[]) { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); int *ptr1=a; printf("%d,%d",*(a+1),*(ptr-1)); return 0; } 结果:2,5 解析:a[5]={1,2,3,4,5}是定义并初始化一个数组;&a表示把a看成一个二维数组时取第一组(行)的地址(指向该行首地址),&a+1表示取第二组(行)的地址(指向该行首地址);a表示取数组的首地址,a+1表示首地址后的下一个地址;*ptr=(int *)(&a+1)表示使指针ptr指向第二组的首地址;ptr-1减一则表示指向ptr的前一个地址,也就是第一组的最后一个地址。 int main(int argc, _TCHAR* argv[]) { int v[2][10]= {{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}; int (*a)[10]= v;//数组指针,即每加1,移动一个数组 cout<<**a<<endl; cout<<**(a+1)<<endl; cout<<*(*a+1)<<endl; cout<<*(a[0]+1)<<endl; cout<<*(a[1])<<endl; return 0; } 结果:1 11 2 2 11 int (*ptr)[] 指向整型数组的指针 int *ptr[] = int *(ptr[]) 是指针数组,ptr[]里面存的是地址。它指向位置的值就是*ptr[0]、*ptr[1]等 |
相关文章推荐
- 面试笔试系列2-数组指针和指针数组的区别
- 【笔试面试知识点查缺补漏深入理解之C与C++篇】C语言中的指针数组与数组指针
- 面试笔试系列3-指针作为函数参数传递
- 面试系列指针与数组
- 面试笔试系列4-二维数组和指向指针的指针
- 程序员笔试面试算法题系列--数组
- 曾经进公司面试的C语言有关指针和数组的笔试题
- 曾经进公司面试的C语言有关指针和数组的笔试题
- 曾经进公司面试的C语言有关指针和数组的笔试题
- C/C++面试之算法系列--去除数组中的重复数字
- 【笔试/面试】数组及其内存结构
- 指针的笔试面试经典题目
- C++语言中数组指针和指针数组彻底分析(系列一)
- <笔试><面试>编写一个排序函数,实现,既可以排序整形数组,又可以排序字符串。
- C++指针数组、数组指针、数组名及二维数组技巧汇总
- C/C++面试之算法系列--整数数组的循环右移
- C++笔试总结-面试笔试常考题型(一)指针-引用-宏定义-sizeof
- 鸡啄米:C++编程入门系列之三十二(数组、指针和字符串:动态内存分配和释放)
- 从一道C语言数组指针的笔试题看面试者的能力和心态
- 读书笔记:C++ Primer系列(10)—— 数组与指针(2)