黑马程序员——C语言指针使用小结

来源:互联网 发布:如何制作淘宝详情图 编辑:程序博客网 时间:2024/05/21 14:41

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


一、指针的的定义

 

    1. 格式:变量类型 * 变量名 

                   int        *     p    

    2. 作用:指针就一个作用,能够根据一个地址值,找到对应的存储空间

    3. int *p;                  //定义了一个指针变量p,p的作用在于存储地址

       int a = 10;

         p = &a;                     //指针变量p指向了变量a的地址

        *p=20;                      // 访问指针变量p指向的存储空间,并把a的值改为20

         printf(“%d”, *p);

     4. 指针变量p前面的 int表示指针变量只能指向int类型的数据

 

*指针的使用注意:

  (1)int *p 只能指向int类型的数据   

  (2)指针变量只能存储地址            (int*p    p=20   这种写法是错误的)

  (3)指针变量未经过初始化,不要拿来直接访问其他存储空间  (int*p;  printf("%d\n,*p")这种写法也是错误的)

 

     5. int  *p ; p=&a  等价于    int  *p = &a 

    6. 所有类型的指针都占8个字节

     7. 指向指针的指针

          int   **pp  

 

二、指针和函数

 

    1. 指向函数的指针

         int   *p(int ,int);

           p=test;                      //定义一个指针变量p指向test函数

         p左边的int:指针变量p指向的函数返回int类型的数据

       p右边的int:指针变量p指向的函数有两个int类型的形参

    2. 返回指针的函数

        char * test ()                   //test 函数返回一个char类型的指针

       {

       }

 

三、指针和数组

 

   1. 指针访问数组元素

       int ages[5]={10,9,8,67,56};

        int *p;

          p=&ages[0];          //指针变量p指向数组的首元素,也可以写成p=ages,因为数组名就是数组的地址,也是数组首元素的地址

        此时的 p--->&ages[0]

          p+1--->&ages[1]

            ..............

          p+i--->&ages[i]

 

*结 论:数组元素的访问方式有三种

    (1)数组名[下标]        ages[i]

    (2)指针变量名[下标]     p[i]

    (3)*(p+i)

 

    2. 指针遍历数组元素

       for (int i=0;i<5,i++) 

       {

           printf("ages[%d]=%d\n",i, *(p+1));

       }

    3. 指针数组

        char *names[5]={"jack","rose"}

 

四、指针和字符串

 

    1. 指针字符串: char *name="it"               //指针变量name指向字符串首字母

    2. 字符串的输入

        char name[20];

        printf("请输入姓名:\n",name);

        scanf("%s",name);

 

0 0
原创粉丝点击