zoukankan      html  css  js  c++  java
  • C语言指针,你还觉得难吗?

    在研究式学习-c语言程序设计指针式这样介绍的:

    内存中存储变量的第一个单元的地址 称为指针,存放指针的变量称为指针变量;

    变量的访问方式有:

    直接访问方式:按变量名查找其首地址

    间接访问方式:通过指针访问

    int swap(int p,int q)
    {
    int temp;
    temp=p;
    p=q;
    q=temp;
    }

    如果要用引用的话,也可以实现两个数的交换;

    例如:

    int swap(int &p,int &q)
    {
    int temp;
    temp=p;
    p=q;
    q=temp;
    }

    现在理解了这个函数为什么要用指针了;

    因为C语言中实参变量和形参变量之间的数据传递是单向的值传递方式,虽然运用指针被调函数不能改变实参指针变量的值,但可以改变实参指针变量指向的变量的值;从而实现值的交换;

    指针指向函数的入口地址:p=swap

    一维数组与指针:

    指针指向数组时的运算:指针加上(减去)一个整数,得到的结果仍然是指针;表示移动位置;

    自增和自减运算:

    int a[10],*p=&a[3];

    自增和自减的优先级大于*

    指针实习字符串的操作:

    *s!=''

    测试字符串长度的函数:

    while(*s++)

    len++;

    字符串复制函数:

    while((*dest++=*src++)!='')

    字符数组中的字符串逆序存放:

    #include <stdio.h>
    #include <STRING.H>
    void srev(char *s)
    {

    char *head=s,*tail;
    char temp;
    tail=s+(strlen(s)-1);
    while (head<tail)
    {
    temp=*tail;
    *tail=*head;
    *head=temp;
    head++;
    tail--;

    }
    }
    void main()
    {
    char test[]={"hello word"};
    printf("%s ",test);
    srev(test);
    printf("%s ",test);


    }

    用指针实现数据的动态管理:

    采用动态的可变的数据结构

  • 相关阅读:
    汇编基础概念
    linux实验小结
    乐视三合一体感摄像头开发记录
    IplImage* 格式与Mat 格式的转换
    STM32关于优先级设定的理解 NVIC_SetPriority()
    "IRQn_Type" is undefined
    串口通信实验编译没有错误,但是串口调试助手收不到数据
    SecureCRT 8版本 自用备份
    Matlab使用robot Toolbox
    开篇
  • 原文地址:https://www.cnblogs.com/wbtn6262/p/3783715.html
Copyright © 2011-2022 走看看