zoukankan      html  css  js  c++  java
  • 指针相关总结1

    指针相关总结1

    指针是数组的迭代器(指针就是迭代器).

    0.字符串数组:

    char a[3][25]= {"XUANXIU YUWEN ", "XUANXIU YUWEN", "FEIXUANXIU TIYU"};就行了 定义成二维数组存储时可以简单看作一排一个字符串数组,
    char* a[10] = {"XUANXIU", "YUWEN", "XUANXIU", "SHUXUE", "FEIXUANXIU", "TIYU"};这样是定义了一个指针数组 指针元素分别指向每一个对应的字符串存储的首地址

    1.C语言指针为什么可以指向字符串常量,却不可以指向整型常量  

    char * c="hello";//等价于char * c; c="hello",这里比较特殊.字符串直接使用代表字符串首地址。(注意这里仅是对c,c++下还是会出错的)
    只可以用指针取字符串常量的地址,该类被认为是左值,而其他的字面值常量(literal constant)比如整数,则被认为是右值,不允许取地址。
     
    而对于int类型,你可以这样改就能用指针了:
    int a=2int*p=&a;

     

    2.字符串的引用方式:

    用数组名和输出格式%s可以输出整个字符串.比如:
    char str[] = "I love China";
    printf("%s
    ", str);//输出完整字符串
    printf("%s
    ", str + 2);//只输出love China,规定了起点。
    cout << *(str+2); //这里只输出"l"

    类中也有这样的情况 

    class A
    {
    public:
        A(int i, char *p) :ival(i), ptr(p) {};
     
        int ival;
        char *ptr;
    };
    void main()
    {
        A a(9, "hello");
        cout << a.ival << a.ptr << endl;//这里a.ptr输出hello,即字符指针能直接输出它所指向的字符串。
        system("pause");
    }

    3.排除编译器限制严谨程度,int和指针变量类型是可以互相转换的。但是最好别这么做,在这里这么做只是为了了解指针的实质(地址)。 

    新战场:https://blog.csdn.net/Stephen___Qin
  • 相关阅读:
    += 和 =+
    Ubuntu分区方案(菜鸟方案、常用方案和进阶方案)
    Apache ab测试工具使用方法(无参、get传参、post传参)(转)
    硬盘安装ubuntu遇到的问题
    Promise
    A Kill Cord for your Laptop
    python 2week
    PDCA循环原理
    python自学基础1week
    14链表中倒数第k个结点
  • 原文地址:https://www.cnblogs.com/Stephen-Qin/p/9343268.html
Copyright © 2011-2022 走看看