• C语言学习指针补充


    #include <stdio.h>
    int main()
    {
        int a[5]={1,2,3,4,5};
        int *p=&a[3];   //这里p指向数组第四个元素4的起始地址。
        *p=100;
        printf("%d
    ",*p++);//先取p指向的值100将指针p自增1;
        printf("%d
    ",*p--);//
    printf(
    "%d ",*--p);//先将指针p自减1,再取指向的值 return 0; } // 100 5 3

    *p++、(*p)++、*++p、++*p 的区别

     int a[5]={1,2,3,4,5};
    int *p = a;

    *p++ 先取指针p指向的值(数组第一个元素1),再将指针p自增1

    cout << *p++; // 结果为 1

    cout <<(*p++); // 1

    (*p)++ 先去指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2
    cout << (*p)++; // 1
    cout <<((*p)++) //2
    *++p 先将指针p自增1(此时指向数组第二个元素),* 操作再取出该值

    cout << *++p; // 2
    cout <<(*++p) //2

    ++*p 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2)
    cout <<++*p; // 2
    cout <<(++*p) //2

    注意,上面的每条cout输出,要单独输出才能得到后面的结果。
    字符串与指针
    #include <stdio.h>
    int main()
    {
        char buffer[10]="ABC";
        char *pc;
        pc="hello";
        printf("%s
    ",pc);
        pc++;
        printf("%s
    ",pc);
        printf("%c
    ",*pc);
        pc=buffer;
        printf("%s
    ",pc);
        return 0;
     } 

    #include <stdio.h>
    int main()
    {
        int a[4]={1,3,5,7};
        printf("%p
    ",a);
        printf("%p
    ",a+1);
        printf("%p
    ",&a);
        printf("%p
    ",&a+1);
        printf("%p
    ",*(&a));
        printf("%p
    ",*(&a)+1);
        return 0;
    }

  • 相关阅读:
    docker 常用命令
    linux 查看服务器序列号
    centos 7 lsof 安装使用
    Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
    nginx 部署前期一定要关闭selinux
    yum 执行不了, 解决方法
    IIS发布网站
    使用TreeView 使用多选功能
    C#类和接口
    关于C#垃圾回收
  • 原文地址:https://www.cnblogs.com/guoweilf/p/11566035.html
Copyright © 2020-2023  润新知