04#认识指针

1.什么是指针?
{
  指针就是用来存放地址的变量
}
2.如何使用指针进行运算?
{
  int a=10;
  int  *p=&a
  printf("%d",*p);
  *p=100;
  printf("%d",a);
}
3.什么时候使用指针?
{
当函数进行值传递时通过指针传递就可以实现,
形参和实参的同步转化,从而更便捷的实现函
数功能
另外,在数组是不支持数组地址++运算所以
通过将首地址赋值给指针,达到指针数组的效
果.(数组地址不可以更改)
}
4.指针有几种类型?
{
常见的有:
    $各种数据类型对应的指针变量以及指针数组
    如:
        char *q;
        int  *p;
        short *a;
        long int *b;
        bool int *c;
        int rum[8];        int rum[];
        int *tree;    int *tree;
        定义指针数组保持相同的数组量,否则
        无法使用
    多级指针:
        用来存放指针地址的指针
        int **p=&q;
        二维数组:指针也可看做二级指针
        但是不等于二级数组就是二级指针
        所以一级指针变量和二级指针之间不可
        以直接赋值
    数组指针:用来存放数组地址的指针
        int fore[10];
        int (*poi)[10]=&fore;
        在此处poi+1就等于fore的地址加40;
    函数指针
}
5.使用指针有什么要求
{
    指针的类型必须和所取地址的变量类型保持
    严格一致
}        
6.巧用指针案例
{
        #include<stdio.h>//总结:数组定义时是指针,运算时是指针解引用 
        #define LIM 4
        int sumary(int a[],int b[],int c[]);
        int main()
        {
            int array1[LIM]={2,4,6,8};
            int array2[LIM]={1,0,3,6};
            int array3[LIM];
            sumary(array1,array2,array3);//将首地址传入形参数组
            int i;
            for(i=0;i<LIM;i++)
            {
                printf("%d\n",array3[i]);
            }

            return 0;
        }
        int sumary(int a[],int b[],int c[])//
        {
            for(int i=0;i<LIM;i++)
            {
                c[i]=b[i]+a[i];
            }
                
            //return 0;
            //a[]=*(a);
            //*(a+i)=a[i];
        }
}    
7.指针有哪些相同的项,哪些不同但相似的项
{    
    *相同项
    数组首地址=数组首元素取地址
    *不同项
    数组取地址 != 数组首地址
    数组首地址加一 != 数组地址加一
}

猜你喜欢

转载自www.cnblogs.com/lxuechao/p/12717225.html
今日推荐