首页 > 编程语言 > 详细

C语言 数组与指针

时间:2020-05-07 00:28:15      阅读:55      评论:0      收藏:0      [点我收藏+]
数组的名称就是数组再内存中的首地址。若定义一个指针变量,并将数组的首地址传给指针变量,则该指针就指向了这个一维数组
例如:int *p,a[10]
p=a;
此时就是将数组a的首地址赋给p
也可以写成如下形式:
p=&a[0]
 
注意:
在使用数组指针的时候,输入可以写成
 
对于一维数组:
int a[10];
p=a;(或p=&a[0])
for
scanf("%d",p++)  //此时p相当于&a[0]
printf("%d",*p
 
对于一维数组:
 
#include<stdio.h>
 
int main(void)
{
int i, *p;
int a[10];
p = a;
for (i = 0; i < 10; i++)
{
scanf("%d", p++);
}
p = a;
for (i = 0; i < 10; i++)
{
printf("%d", *(p+i)); //或*p++
}
}
 
对于二维数组:
#include<stdio.h>
 
int main(void)
{
int i,j, *p;
int a[3][3];
p = a[0];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3;j++)
{
scanf("%d", p++);
}
}
p = a[0];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d", *p++);
}
printf("\t");
}
}
 
 
若要输出二维数组的某行:
#include<stdio.h>
 
int main(void)
{
int i, j, (*p)[3]; //(*p)[3]指的数组指针 他是指针 指向一个含有3个元素的一维数组
int a[3][3];
p = &a[0]; //此时p在a[0]处连接,输入元素
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d", (*(p + i) + j));
}
}
p = &a[1]; //此时p在a[1]处连接,输出3位元素
for (j = 0; j < 3; j++)
{
printf("%d", *((*p) + j));
}
}
 

C语言 数组与指针

原文:https://www.cnblogs.com/xikl/p/12840077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!