Part6 数组指针与字符串 6.6指针与数组

Posted LeoSirius

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Part6 数组指针与字符串 6.6指针与数组相关的知识,希望对你有一定的参考价值。

数组是一组连续存储的同类型数据,可以通过指针的算术运算,使指针依次指向数组的各个元素,进而可以遍历数组。

定义指向数组元素的指针:

    int a[10], *pa;
    pa=&a[0]; 或 pa=a;

经过上述定义及赋值后:
*pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i].
a[i], *(pa+i), *(a+i), pa[i]都是等效的。

//例6-7 (1) 使用数组名和下标访问数组元素
#include<iostream>
using namespace std;
int main(){
    int a[10] = {1,2,3,4,5,6,7,8,9,0};
    for(int i = 0;i < 10; i++)
        cout << a[i] << " ";
    cout << endl;
    return 0;
}
//例6-7 (2) 使用数组名和指针运算访问数组元素
#include<iostream>
using namespace std;
int main(){
    int a[10] = {1,2,3,4,5,6,7,8,9,0};
    for(int i = 0; i < 10; i++)
        cout << *(a+i) << " ";
    cout << endl;
    return 0;
}
//例6-7 (3) 使用指针变量访问数组元素
#include<iostream>
using namespace std;
int main(){
    int a[10] = {1,2,3,4,5,6,7,8,9,0};
    for(int *p = a; p<(a+10); p++)
        cout << *p << " ";
    cout << endl;
    return 0;
}

 

指针数组:数组的元素是指针型

//例6-8 利用指针数组存放矩阵
#include<iostream>
using namespace std;
int main(){
    int line1[] = {1,0,0};//矩阵的三行
    int line2[] = {0,1,0};
    int line3[] = {0,0,1};
    
    int *pLine[3] = {line1,line2,line3};//定义整型指针数组并初始化
    cout << "Matrix test: " << endl;
    for(int i = 0;i < 3; i++){
        for(int j = 0; j < 3; j++)
            cout << pLine[i][j] << " ";
        cout << endl;
    }
    return 0;
}

 

以上是关于Part6 数组指针与字符串 6.6指针与数组的主要内容,如果未能解决你的问题,请参考以下文章

Part6 数组指针与字符串 6.1 数组的定义与初始化

Part6 数组指针与字符串 6.13字符串

Part6 数组指针与字符串 6.10 智能指针 6.11 vector对象

Part6 数组指针与字符串 6.2 数组作为函数的参数 6.3对象数组 6.4基于范围的for循环

指针与一维数组和二维数组以及字符串指针数组的学习笔记

C 语言数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )