码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 数组与指针

时间:2020-05-07 00:25:49      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:pmi   jin   atm   jic   tag   0ms   mil   aci   tin   

数组的名称就是数组再内存中的首地址。若定义一个指针变量,并将数组的首地址传给指针变量,则该指针就指向了这个一维数组
例如: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语言 数组与指针

标签:pmi   jin   atm   jic   tag   0ms   mil   aci   tin   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!