• C的指针,真的很经典


    工作以后,一直使用C++,也做过Objective C,各种类的方法封装得很好,使用很简单,今天偶尔翻看一下 严蔚敏 的 《数据结构》,第一个程序demo就看了半天,一是由于demo的变量命名问题,全是i,m,n,p什么的;二就是对指针的使用生疏了。现在把改写的demo记录一下。。。

       1: #include <stdio.h>
       2: #include <stdlib.h>
       3:  
       4: void Invert(int *pArray, int nCount) {
       5:     int *pHead = pArray;
       6:     int *pTail = pArray + nCount - 1;
       7:     int iTemp = 0;
       8:     while(pHead < pTail) {
       9:         iTemp = *pTail;
      10:         *pTail = *pHead;
      11:         *pHead = iTemp;
      12:         pHead++;
      13:         pTail--;
      14:     }
      15:     pHead = NULL;
      16:     pTail = NULL;
      17: } 
      18:  
      19: int main(int argc, char *argv[]) {
      20:     int nCount = 0;
      21:     printf("
    Enter nCount: ");
      22:     scanf("%d", &nCount);
      23:     int *pArray = malloc(sizeof(int) * nCount);
      24:     int *pCounter = pArray;
      25:     printf("
    Input the original array:
    ");
      26:     int i = 0;
      27:     for(; i<nCount; i++) {
      28:         scanf("%d", pCounter++);
      29:     }
      30:     printf("
    The original array is: ");
      31:     pCounter = pArray;
      32:     for(i=0; i<nCount; i++) {
      33:         printf("%d ", *(pCounter++));
      34:     }
      35:     Invert(pArray, nCount);
      36:     printf("
    The inverted array is: ");
      37:     for(i=0; i<nCount; i++) {
      38:         printf("%d ", *(pArray++));
      39:     }
      40:     pCounter = NULL;
      41:     free(pArray);
      42:     pArray = NULL;
      43:     return 0;
      44: }

  • 相关阅读:
    Docker配置容器位置和小技巧
    firewall防火墙
    iptables防火墙常用命令
    Docker 常用命令
    Dockerfile镜像的制作
    Windows和Centos下Docker的安装配置
    ubuntu 常用命令
    microPython环境安装及使用
    Arduino上“Collect2.exe: error: ld returned 5 exit status”错误的解决方法
    基于C语言的面向对象编程
  • 原文地址:https://www.cnblogs.com/mforestlaw/p/3289420.html
Copyright © 2020-2023  润新知