zoukankan      html  css  js  c++  java
  • VC++/MFC学习笔记(四)

     
    如何使用指针传递内存
    一般使用指向指针的指针,或者用返回类型来传递。
     
     
     
    指针:地址
     
    变量的指针:变量的地址
     
    指向变量的指针变量:存放变量地址的变量是指针变量,用来指向另一个变量。为了表示指针变量和它所指向的变量之间的联系,在程序中用“*”符号表示“指向”,例如,pointer代表指针变量,而* pointer是pointer所指向的变量。
    指针变量的定义: 基类型    *指针变量名
     
    数组的指针:是指数组的起始地址,数组元素的指针是数组元素的地址。
    指向数组的指针变量
    数组名代表数组的首地址。
     
     
     
     
    指向指针的指针:
     
    指向函数的指针:
    1、定义形式: 数据类型 (*指针变量名)();
    此处的数据类型指的是函数的返回类型。
    2、函数的调用可以通过函数名调用,也可以通过函数指针调用。
    3、(*P)()表示定义一个指向函数的指针变量,它不是固定指向哪一个函数的,而只是表示定义了这样一个类型的变量,它是专门用来存放函数的入口地址的。在程序中把哪一个函数的地址赋给它,它就指向哪一个函数。在一个程序中,一个指针变量可以先后指向不同的函数。
    4、在给函数指针变量赋值的时候,只需给出函数名而不必给出参数。如:p=max;因为是将函数入口地址赋给p,而不牵涉到实参与形参的结合问题。不能写成“p=max(a,b)”形式。
    5、用函数指针变量调用函数时,只需将(*p)代替函数名即可,在(*p)之后的括弧中根据需要写上实参。
    6、对指向函数的指针变量,像p+n、p++、p——等运算是无意义的。
     
     
    const char* 和 char*const的区别:
     
    const的位置不同,作用也不同。 以*前后为区别,const在* 之前,表示指向常量的指针,在*之后表示指针常量。
     
    如:char ch[5]="lisj";
         const char*pStr=ch;//或者可以写成 char const*pStr=ch;
    此处为指向常量的指针,指向的对象是常量。指针值可以改变,但是指针指向内容不可改变。
    *pStr='w';      //error
    pStr="zhangsan";//ok
     
     char ch[5]="lisj";
     char*const pStr=ch;
    此处为指针常量,指针值不可以修改,指向内容可以修改。
    pStr="zhangsan";//error
    *pStr='w';         //ok 
     
    指针常量必须在定义的同时赋值。指向常量的指针可以先定义完了再赋值。
  • 相关阅读:
    bzoj 2084: Antisymmetry 回文自动机
    bzoj 1819: 电子字典 Trie
    bzoj 1398: 寻找主人 AC自动机+最小表示法
    bzoj 4199: [Noi2015]品酒大会 后缀树
    bzoj 4044: Virus synthesis 回文自动机
    信用风险评分卡研究-第4章笔记
    信用风险评分卡研究-第3章笔记
    信用风险评分卡研究-第2章笔记
    信用风险评分卡研究-第1章笔记
    评分卡建模流程目录
  • 原文地址:https://www.cnblogs.com/ainima/p/6332070.html
Copyright © 2011-2022 走看看