zoukankan      html  css  js  c++  java
  • C指针——简单总结

    简介:

      指针变量在使用前,必须指向具体的有效的内存单元    

      指针变量在使用前不但要定义还要初始化

      四个方面:指针的类型,指针指向的类型,指针的值或者指针所指向的内存区,指针本身所占的内存区

     int *ptr;//指针的类型是 int* ;指针指向的类型是 int ;32位长,指针指向了首地址;sizeof
    

     

    &地址运算符   *取值运算符

    int a =12;int b ;int *p ; int **ptr;
    p = &a;  //&a结果是一个指针,类型是int*;指向的类型是int,指向的地址是a的地址;
    *p =12;
    ptr = &p;
    *ptr =&b;  //*ptr是个指针,&b的结果也是个指针
    **ptr =24; //*ptr的结果是ptr所指向的东西,在这里是一个指针,对这个指针在做一次*运算,结果是个int类型的变量
    

    指针的算术运算

    char a[20];       
    int *ptr=(int *)a;   // 注意数组a为char,指针指向的类型是int
    ptr++;
    

      

    数组指针与指针数组

       假设一个数组str[5],str[0]是数组的第一个元素,数组名str就是数组元素str [0]的地址,所以str与&str[0]指向同一内存单元

       字符串处理有两种方式,一种是数组形式,一种是指针形式,数组名代表存放在数组空间的首地址

    函数指针与指针函数

    要在被调用函数中改变主调函数的变量值,就得把主调函数中的变量的指针作为实参,传递给被调函数,仅仅传递变量值是没有作用的。

    函数指针 数据类型 *变量名)();    

      用来指向某个函数,但是具体指向那个函数要看使用前函数指针指向那个函数

    void (*p_output)(); 
    p_output=output; 
    (*p_output)();  //通过指针变量调用函数  
    return 0;

    指针函数 数据类型  *变量名();

      返回值是指针的函数,()的优先级比*大,所以变量名先与()结合再与*结合

      函数指针就是函数的地址;指针函数就是返回值为指针的函数

  • 相关阅读:
    fluentValidation集成到autofac
    javascript中的this
    Android环境配置Sencha Touch
    PHP上传图片如何防止图片木马?
    mysql 修改字段长度
    mysql 截取字符
    php 获取文件后缀名
    mysql 导入导出数据库、数据表
    Nginx下修改php.ini后重新加载配置文件命令
    ubuntu 12.04 LTS(64位)安装apache2
  • 原文地址:https://www.cnblogs.com/happying30/p/9336366.html
Copyright © 2011-2022 走看看