zoukankan      html  css  js  c++  java
  • C++指针概念

    时间长了,有很多概念性的东西自己竟然描述不出来,虽然知道怎么用,但是描述不出来就是能力不能体现的一种。
    语言中,指针是一种类型,被称为“指针类型”。指针类型描述的是一个地址,这个地址指向内存中另外一个对象的位置。简单地说,指针表示的是它所指向对象的地址。
    1、比较point,*point,&point三者的区别
    对于int * point;
    point:是指针变量,其内容是地址量。
    *point:是指针变量的目标变量,即指针指向的那个变量,其内容是数据。
    &point:是指指针变量本身所占据的存储地址。
    2、指针与数组
    用指针和数组名在访问内存中的数据时,他们的表现形式是等价的,因为他们都是地址量。
    数组名表示整个数组的首地址,可以看作是固定地址的指针,不能被赋值。
    数组名无须赋初值,而指针在使用前必须赋初值。
    3、字符指针和字符串
    字符串是一个字符数组,字符串以‘’结束。printf函数的%s格式输出字符时,是从给定的地址开始,到遇上第一个‘’字符时结束。
    对字符指针初始化,是将字符串的首地址赋给指针。
    4、指针型函数
    所谓指针型函数,即返回值是指针(地址)的函数。
    5、多级指针
    指向指针的指针(**p)就是二级指针,指向指针的指针的指针(***p)是3级指针。
    多级指针类似于间接寻址。
    6、指向函数的指针
    C语言中的函数名表示函数的首地址,即函数执行的人口地址。
    定义形式:[存储类型][数据类型标示符](*指向函数的指针变量名)();
    例子: int(*fun)();//指向函数的指针 , int * fun(); //指针型函数,注意(* fun)括号不能少
    7、动态指针
    当需要一大片内存的时候,最好使用动态分配。
    使用malloc函数:void * malloc(size_t size)。
    例子:
    int * pn=malloc(10*sizeof(int));
    double *pd=malloc(10*sizeof(double));

  • 相关阅读:
    一道题DP
    BZOJ 3155: Preprefix sum
    BZOJ:3209: 花神的数论题
    TJU 4087. box
    BZOJ1192: [HNOI2006]鬼谷子的钱袋
    概率DP
    Codeforces Round #253 (Div. 2) D题
    二维树状数组
    Codeforces Round #250 (Div. 2)
    莫比乌斯函数
  • 原文地址:https://www.cnblogs.com/WinkJie/p/14277563.html
Copyright © 2011-2022 走看看