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("\nEnter nCount: ");
22: scanf("%d", &nCount);
23: int *pArray = malloc(sizeof(int) * nCount);
24: int *pCounter = pArray;
25: printf("\nInput the original array:\n");
26: int i = 0;
27: for(; i<nCount; i++) {
28: scanf("%d", pCounter++);
29: }
30: printf("\nThe original array is: ");
31: pCounter = pArray;
32: for(i=0; i<nCount; i++) {
33: printf("%d ", *(pCounter++));
34: }
35: Invert(pArray, nCount);
36: printf("\nThe 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: }
C的指针,真的很经典的更多相关文章
- HTTP协议详解(真的很经典)(转载)
HTTP协议详解(真的很经典):http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html 引言 HTTP是一个属于应用层的面向对象的协 ...
- 【转】博弈问题及SG函数(真的很经典)
博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...
- 转载--博弈问题及SG函数(真的很经典)
博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...
- HTTP协议详解(真的很经典)
HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...
- 转:HTTP协议详解(真的很经典)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...
- 深入理解HTTP协议—HTTP协议详解(真的很经典)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 转:Eric Lippert:阅读代码真的很难
转自:http://blog.jobbole.com/438/ 相关文章 微软资深软件工程师:阅读代码真的很难(第2篇) 阅读优秀代码是提高开发人员修为的一种捷径 学会阅读源代码 如何阅读大型代码库? ...
- C++运算符重载总结(真的很详细了w(゚Д゚)w)
C++运算符重载总结(真的很详细了w(゚Д゚)w) 概述 运算符重载可以使得一些特殊类型参与运算,我是这样理解的. 使用友元形式的运算符重载 //一般形式 class x{ friend 返回类型 o ...
- HTTP真的很简单
原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! 前言 在看这篇文章的时候 ...
随机推荐
- POJ 1118 Lining Up
枚举,排序. 先将所有点按双关键字排序,然后枚举线的顶点$P$,剩余的点以$P$为中心进行极角排序,可以取个$gcd$,这样一样的点就排在一起了,然后统计一下更新答案. #pragma comment ...
- XTU 1252 Defense Tower
$2016$长城信息杯中国大学生程序设计竞赛中南邀请赛$J$题 贪心. 优先删除$power$大的点. #pragma comment(linker, "/STACK:1024000000, ...
- 键盘快速启动工具Launchy的简单使用技巧
打开电脑面对林林总总的图标,找到对应的程序,快速启动显得尤为重要.这样有利于提高我们的效率. 好了,直接上图: 就是这款小巧的工具,界面如上. 接下来介绍这款工具的使用技巧. 1.安装成功后:打开工具 ...
- jetbrain phpstorm 增加或删除一个 live template
打开\.PhpStorm2016.2\config\templates 将xml文件放入该文件夹中 重启! 单独: setting -> editor -> Live Template +
- MYSQL 主从复制(NIOT)
一.主数据库操作设置(A) 1.修改配置文件,vim /etc/my.cnf,然后重启mysqld,/etc/init.d/mysqld restart [mysqld]<要在mysqld中括号 ...
- maven 项目 pom.xml文件中配置的jar包下载报错
[ERROR] [ERROR] Some problems were encountered while processing the POMs:[ERROR] 'dependencies.depen ...
- svn is already locked解决办法
在出错文件夹下,鼠标右键
- 2015 asia xian regional F Color (容斥 + 组合数学)
2015 asia xian regional F Color (容斥 + 组合数学) 题目链接http://codeforces.com/gym/100548/attachments Descrip ...
- javascript深入理解js闭包(个人理解,大神勿喷)
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
- mysql修改编码
1.查看当前编码 2.设置utf8mb4编码(也可以是其他),修改my.cnf或my.ini