指针与数组

Posted hongjiamin

tags:

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

首先指针就是地址,数组本身就是地址,所以输入时可以不需要取地址符‘&‘,但如果引用数组的元素,就必须得加&符。

通过指针引用数组:

用一个指针变量指向一个数组元素

#include<stdio.h>
int main()
{
    int a[5]={2,5,8,3,5};
    int *p;
    p=&a[0];
    printf("%d",*p);
    return 0;
}

运行结果:2

当printf("%d",*p);改为printf("%d",p);时,每次的运行结果为不同的7位数字,表达的是地址。

p=&a[0];等价于p=a;(a为函数名),因为p=a;的作用是把a数组的首元素的地址赋给指针变量p。

同时,int *p;p=&a[0];等价于int *p=a;

 

数组是不能进行自加自减运算,需要借助指针变量。

若指针变量p指向a的元素a[0]:

1、p++:使得p指向下一个元素a[1],则*p为元素a[1]的值。

2、*p++:等价于*(p++),先得到p所指向的值*p,在进行p++运算。

3、*(++p):先使p自加1,再取*p的值。

4、(*p)++:表示p所指向的元素值自加1。

 

打印下列图形:

A

BC

DEF

GHIJ

 

#include<stdio.h>;

int main()
{
     int i,j,k=0,p=0;
     for(i=0;i<4;i++)
     {
          k++;
          for(j=0;j<k;j++)
          {
              p++;
              printf("%c",64+p);
           }
           printf("
");
     }
}

 

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

在第6731次释放指针后双重免费或损坏

指针与数组

指针与数组

Go语言切片

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

c语言中如何通过二级指针来操作二维数组