C语言指针使用小结

------期待与您交流! -------


一、指针的的定义


    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值