如何在c语言二维数组中使用指针
对于a[i][j](二维数组的大小为n×m)而言,首先要搞清楚行指针和列指针行指针:&a[i]或者a+i指向行,&a[i]=&*(a+i)=a+i列指针:a[i]或*(a+i)指向列,a[i]等价于*(a+i)元素的引用方式有如下三种方式1.通过地址引用二维元素*(&a[i][j]),*(a[i]+j),*(*(a+i)+j),*(a[0]+m*i+j)*(&a[0][0]+m*i+j)(*(a+i))[j]2.建立一个指针数组引用二维元素int *p[3],a[3][2],i,j;for(i=0;imain(){int score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};int i,j;printf("输入学生号:0-2");scanf("%d",&i);printf("the score of No.%d are:\n",i);for(j=0;jmain(){int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int *p;for(p=a[0];p
main(){int score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};int i,j; printf("输入学生号:0-2");scanf("%d",&i);printf("the score of No.%d are:\n",i);for(j=0;jmain(){int score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};int i,j,*p; printf("输入学生号:");scanf("%d",&i);printf("the score of No.%d are:\n",i);for(p=score[i];p
c语言数组和指针谁先有
先有c语言数组,当一个指针变量被初始化成数组名时,就说该指针变量指向了数组。
ptr被置为数组str的第一个元素的地址,因为数组名就是该数组的首地址,也是数组第一个元素的地址。此时可以认为指针ptr就是数组str(反之不成立),这样原来对数组的处理都可以用指针来实现。
c语言指针如何输出整个数组
输出数组
①下标法
#include
void main()
{
int a[10];
int i;
for (i = 0; i<10; i++)
scanf("%d", &a[i]);
for (i = 0; i<10; i++)
printf("%d\n", a[i]);
printf("\n");
}
②由数组名计算地址
#include
void main()
{
int a[10];
int i;
for (i = 0; i<10; i++)
scanf("%d", &a[i]);
printf("\n");
for (i = 0; i<10; i++)
printf("%d\n", *(a + i));
printf("\n");
}
③用指针变量指向数组元素
#include
void main()
{
int a[10];
int i, *p;
for (i = 0; i<10; i++)
scanf("%d", &a[i]);
printf("\n");
for (p = a; p
printf("%d", *p);
printf("\n");
}
还没有评论,来说两句吧...