zoukankan      html  css  js  c++  java
  • 2.指针

    一.指针是一种数据类型

    1) 指针也是一种变量(从内存的角度看,就是分配四个字节的内存),占有内存空间,用来保存内存地址。

    2) 指针变量和它指向的内存块是两个不同的概念。

    例:拷贝字符串

    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    
    #pragma warning(disable:4996)
    
    
    void main() {
    
    
    
        char buf1[100] = {0};
        char buf2[100] = {0};
    
        char *p1 = &buf1;
        char *p2 = &buf2;
    
        strcpy(buf1,"abcdef");
    
        while (*p1 != '')
        {
            *p2 = *p1;
            p1++;
            p2++;
        }
    
        *p2 = *p1;
        printf("current buf1 is : %s
    ",buf1);
        printf("current buf2 is : %s
    ",buf2);
    
        system("pause");
    
    
    }

    运行示意图:

    运行结果:

    3) 指针是一种数据类型,是指它指向的内存空间的数据类型

    这就是为什么int类型的指针p,和char类型的指针p,在进行p+1操作后,其步长不一致的根本原因。所以,指针的步长,是根据其所指的内存空间类型来定。

    二.可以通过*p/*p++来改变变量的值是指针存在的最大意义

    在实际应用时,就是用实参取地址,传给形参,在被调用函数里面用*p来改变实参,再把运算结果传出来。

    三.函数指针

    #include <stdio.h>
    #include <stdlib.h>
    
    void MyFun(int x);
    // 定义一个函数指针
    void (*pMyFun)(int);
    
    int main(void)
    {
        MyFun(10);
        pMyFun = &MyFun;
        (*pMyFun)(20);
    
        system("pause");
        return 0;
    }
    
    void MyFun(int x)
    {
        printf("%d
    ",x);
    }
  • 相关阅读:
    linux网络服务
    linux支持中文
    quartz-2实例
    makefile入门
    form 组件
    jquery +ajax 上传加预览
    iframe 加form提交数据
    笔记,ajax,事件绑定,序列化
    KindEditor
    统计图表
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6763709.html
Copyright © 2011-2022 走看看