zoukankan      html  css  js  c++  java
  • C 指针运算 指针访问数组

    #include<stdio.h>

    int main(void)
    {
        //指针的运算
        int * p;
        p = NULL;       //表示是个空指针
        p++;            //p = p + 1,p的值是0加上sizeof(int)*1
        printf("加运算:%d ",p);     //结果是4,因为int类型占用4个字节

        p = (int*)10;
        p = p - 2;      //10 - sizeof(int) * 2 ====>10 - 4*2 = 2
        printf("减运算:%d ",p); 

        //指针访问数组
        int li[10] = {1,2,3,4,5,6,7,8,9,0};
        int * pi;
        pi = li;    //数组名其实就是个指针,存的是数组的起始地址,也就是第一个元素的地址
        for(int i = 0;i < 10; i++)
        {
            printf("%d,%d,%d ", &li[i], li[i],pi[i]);      //下标法,传统方式
        }

        for(int i = 0;i < 10; i++)
        {
            printf("%d,%d ", pi + i, *(pi + i));  //通过指针计算元素地址,然后取值
        }


        for(; pi < (li+10); pi++)
        {
            printf("指针指向当前数组元素:%d,%d ",pi,*pi);      //直接指向当前数组元素
        }

        printf("%d,%d",pi,*pi);        //注意的是,因为上面例子是通过指针运算取值,结果现在的指针pi已经不是指向原先数组的地址了






        return 0;
    }
  • 相关阅读:
    Clipper库中文文档详解
    uboot makefile构建分析
    nvidia tk1使用记录--基本环境搭建
    学习
    es6 es7新语法
    react dva发送请求详解(转)
    antDesign表单getFieldDecorator
    react dav
    js实现截取a标签的href属性和内容
    react学习
  • 原文地址:https://www.cnblogs.com/hemage/p/13255561.html
Copyright © 2011-2022 走看看