快捷搜索:  汽车  科技

数组是不是指针(指针与数组)

数组是不是指针(指针与数组)int a[]={5 6 2 4 7};{a为a数组的起始位置p指向a的首地址,则a[i] *(p i) *(x i)和p[i]具有相同的作用 即访问数组的i 1个元素int main()

数组与指针

数组的指针是指数组在内存中的起始位置,数组元素的地址是指数组元素在内存中的起始位置。

一维数组的数组名为一维数组的指针 即起始位置。

int a[5];

a为a数组的起始位置

p指向a的首地址,则a[i] *(p i) *(x i)和p[i]具有相同的作用 即访问数组的i 1个元素

int main()

{

int a[]={5 6 2 4 7};

int * p;

p = a;

cout<<"a[3]的值" <<a[3]<<endl;

cout<<"*(p 3)的地址"<<*(p 3)<<endl;

cout<<"*(a 3)的地址"<<*(a 3)<<endl;

return 0;

}

数组是不是指针(指针与数组)(1)

二维数组与指针

a 1 按行移动一次 a[0] 1按列移动一次

#include <iostream>

using namespace std;

int main()

{

int a[3][2]={{5 6} {2 4} {7 2}};

int * p;

int n = sizeof(a)/sizeof(int);

cout<<"a= "<<a<<" a 1="<<a 1<<endl;

cout<<"a[0]= "<<a[0]<<" a[0] 1="<<a[0] 1<<endl;

return 0;

}

数组是不是指针(指针与数组)(2)

行指针——存储行地址的指针变量

基本形式:

<存储类型> <数据类型> (*<指针变量名>)[表达式];

int a[2][3];

int (*p)[3]; //常量数据表示指针加1,移动几个数据

#include <iostream>

using namespace std;

int main()

{

int a[3][2]={{5 6} {2 4} {7 2}};

int (*p)[2];

p=a;

int n = sizeof(a)/sizeof(int);

cout<<"a= "<<a<<" a 1="<<a 1<<endl;

cout<<"p= "<<p<<" p 1="<<p 1<<endl;

cout<<"a[1][1]= "<<a[1][1]<<" p[1][1]="<<p[1][1]<<endl;

return 0;

}

数组是不是指针(指针与数组)(3)

二维数组遍历的几种方式

#include <iostream>

using namespace std;

int main()

{

int a[3][2]={{5 6} {2 4} {7 2}};

int (*p)[2];

p=a;

int n = sizeof(a)/sizeof(int);

int m = sizeof(a)/sizeof(a[0]);

for(int i =0;i<m;i )

{

for(int j=0;j<n/m;j )

{

cout<<a[i][j]<<" ";

cout<<p[i][j]<<" ";

cout<<*(*(p i) j)<<" ";

cout<<*(*(a i) j)<<" ";

}

cout<<endl;

}

return 0;

}

数组是不是指针(指针与数组)(4)

猜您喜欢: