The amazing efficiency of pointer in C Programming Language

原创 2008年09月28日 13:39:00

      Today I read a book names C Programming Language and Pointer,In some section I found an amazing efficiency programme by using pointer,the example's topic is copy an array.you will see the effect after these codes compiled to assembly language. 
      Here is the example:
      Suppose we already know to array A and B,and now we want to copy A to B,assume A and B have a same size we just define it is SIZE,the following I will show some ways of array copy.
      The condition is:
      #define SIZE 50
      int A[SIZE]
      int B[SIZE]
NO 1
void copy1()
{
     for(i = 0; i < SIZE; i++)
             A[i] = B[i];
}
this way is very clear,it is very easy to read,but with low efficiency.

NO 2
void copy2()
{
       int *p1, *p2
       for(int i = 0, p1 = A, p2 = B; i < SIZE; i++)
            *p2++ = *p1++;
}
this way is clear ,too.and the efficiency will improves while comared to the preceding way.

NO 3|
void copy3()
{
       register int *p1, *p2;
       for(p1 = A, p2 = B; p1 <= &A[Size - 1];)
             *p2++ = *p1++;
}
this is the most efficiency way for two array copy.but it is not so clear while compared to the preceding two ways.

       Why C programming language is so efficiency? the most reason I think is it can manipulate the memory and harewares directly.if you wite a good C programme the excute speed is more or less the same as Assembly Language.

《The C Programming Language》读书笔记总结 <一>.基础篇

写了这么多年的C代码,回过头来再看《The C Programming Language》这本书,作者Brian W. Kernighan和C语言之父Dennis M. Ritchie。感觉里面的知识...
  • Eastmount
  • Eastmount
  • 2015年10月21日 16:14
  • 2064

读经典《C程序设计语言》(The C Programming Language)

作为软工专业的学生,大三下,我重新开始学习C语言,为什么呢?因为我发现在大学生涯里,我花了很多时间去刷GPA,花了很多时间去做了很多无谓的事情,以至于马上就面临找实习、找工作。自己甚至连一门语言都没有...
  • stc_XC
  • stc_XC
  • 2017年05月30日 22:54
  • 735

摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”

材质和光的交互除了反射现象,对于透明物体还存在透射现象。模拟光的透射现象通常是一个比较头痛的问题,因为需要至少计算光的两次透射方向,首先计算光从介质一进入介质二的透射方向,然后计算光从介质二进入介质一...
  • xuexiaokkk
  • xuexiaokkk
  • 2015年11月18日 16:18
  • 332

C程序设计语言(The C Programming Language) 读书笔记

C程序设计语言 The C Programming  Language 第1章      导言 1.1 1、C语言提供的转义字符序列还包括:\t表示制表符;\b表示回退符;\”表示双引号;\\表...
  • EclipseFlower
  • EclipseFlower
  • 2013年04月05日 12:40
  • 1198

《The C Programming Language》读书笔记总结 <一>.基础篇

写了这么多年的C代码,回过头来再看《The C Programming Language》这本书,作者Brian W. Kernighan和C语言之父Dennis M. Ritchie。感觉里面的...
  • paul123456789io
  • paul123456789io
  • 2017年02月09日 11:44
  • 380

C语言学习笔记(九) -指针上 Pointer

指针变量/* 指针变量:用来保存地址的变量 地址的获取 & 指针定义: 类型 指针名 值 *星号的作用:取指针变量所指内存变量的值(*pa 取pa所指的值) */#includ...
  • wangzi11322
  • wangzi11322
  • 2015年03月16日 18:41
  • 2007

The C Programming Language 第四章函数与程序结构 读书笔记

函数可以把大的计算任务分解成若干个较小的任务,程序设计人员可以基于函数进一步构造函数,而不需要重新编写一些代码。一个设计得当的函数可以把程序中不需要了解的具体操作细节隐藏起来,从而使得整个程序结构更加...
  • wtrnash
  • wtrnash
  • 2015年08月03日 21:15
  • 715

the C programming language笔记<机械工业英文第2版>

1. int getchar()注意用int接收getchar传回的值,因为
  • ZF180
  • ZF180
  • 2014年09月06日 17:37
  • 1770

【C】打印输入中单词长度的直方图(水平)

the C programming language,p17,练习1-13
  • C_Ray
  • C_Ray
  • 2014年05月19日 11:34
  • 670

[the c programming language]-2章:类型、运算符与表达式

变量和常量是程序处理
  • u013542256
  • u013542256
  • 2014年07月20日 20:13
  • 708
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:The amazing efficiency of pointer in C Programming Language
举报原因:
原因补充:

(最多只允许输入30个字)