• C++指针小记


    1、指针变量的声明:

        数据类型 *指针变量名;

        int *p; //声明一个用于存储int型变量地址的指针变量p,即变量p是一个指向int类型的指针变量

    2、指针变量的初始化

       数据类型标识符 *指针变量名=初始地址值;

       int i;   //定义一个整型变量i,并为i分配内存空间

       int *p=&i; //定义p为指针变量,并将i的地址赋值给指针变量p作为初值

      特例:指向字符类型的指针变量可以对字符串进行初始化

       char *str="Hello World"; //将字符串的第0个字符'H'的地址赋给指针变量str

    3、一个程序:

    1 void main()
    2 {
    3     char *p="hello world";
    4     cout<<*p<<endl;
    5     cout<<&p<<endl;
    6     cout<<p<<endl;
    7 }
    

    结果:

    4、*和&运算符

       *为指针运算符,用以返回指针变量所指向变量的值。

       &为取地址运算符,用以返回变量的指针,即变量的地址。

    例子:int *p; //声明p是一个int型的指针

             y=*p; //将指针p所指向的值赋给y,即y是一个值,而不是指针

    例子: int n=1;

             int &q=n;  //声明一个int型的引用名q,该引用名是变量n的别名

    例子:int p=&x; //对指针变量p赋初值

    5、数组指针:指向数组元素的指针称为数组指针。

    6、在C++中,指针变量的基本单位为其指向的数据类型的变量所占用的字节数。

    例子:int a[3];

            int *p=a;

            int *q=p+2;

       cout<<p<<endl;

            cout<<q<<endl;

         p与q的地址正好相差:4*2=8

    7、指针的动态分配存储--动态分配数组

    1 int *p=new int [size];
    2 ...
    3 delete []p;

    8、返回指针的函数

     char *str=(char *string,int c);  //如:在字符串string中查找字符c,找到返回c的地址,否则返回NULL

     char *str1=(char *string1,char *string2); //如:在字符串string1中查找子串string2,如果找到则返回string2在string1中的地址,否则返回NULL

     9、指向函数的指针

     <函数返回值类型>( * <指针的名字 >)(<参数>)

    如:int (*p)(); //p为指向返回值为整型的函数指针

         float(*q)(float,int); //q为指向返回值为浮点型函数的指针

    如:

    1 int *fun(); //返回地址的函数
    2 int (*fun)(); //返回函数的指针

    10、指针数组

    一维指针数组: 数据类型 *数组名[下标表达式];

      [下标表达式]指出数组元素的个数,数据类型确定指针的类型。 如:char *p[10]; //声明一个一维指针数组,包括10个元素,每个元素都是指向字符类型的指针

  • 相关阅读:
    能ping通Linux但是ssh连不上问题解决方法
    php遍历目录与文件夹的多种方法详解
    Apache与Nginx的优缺点比较
    Apache查看连接数和限制当前的连接数
    【MySql】性能优化之分析命令
    PHP实现各种经典算法
    301、404、200、304等HTTP状态
    常用服务器资源地址集合
    关于WAMP的apache 人多了就访问非常卡的问题解决方法
    HTML基础
  • 原文地址:https://www.cnblogs.com/f59130/p/3342336.html
Copyright © 2020-2023  润新知