占位符体现的编程思想
来源:互联网 发布:孙俪的淘宝店铺等花开 编辑:程序博客网 时间:2024/05/20 09:47
相信只要会编程的人都知道占位符有什么作用,顾名思义,用来代替数据占一个位置。 但是为什么要用占位符呢?直接写出结果不就好了吗?
这就是我做几个题目之后得出的结论:占位符可以省略计算。
例如:int a=3,b=4;
printf("a+b=7\n",a+b);
这个语句很显然是成立的,但是我们考虑一个问题,计算机是用来计算的,相比于人脑,计算机的计算速度是用秒来衡量的。简单的计算程序员也能一下子算出结果,如果数值很大怎么办呢?就让计算机代替我们来计算,所以这时候就用占位符。
把上面的语句用下面一句代替,效果就会好很多:
printf("a+b=%d\n",a+b);
换成占位符之后,就算a和b的数值很大也不关程序员的事了。
再举个例子:取一个整数a的从右端开始的4~7位。
分析:提取一个数的某些位,显然用按位与&运算。要提取4~7位,就要与 1111 0000=240按位与计算。一想到这我就很开心了,感觉自己可以一下子就把这个题目解决,于是刷刷下了几行程序:
int a,b;
printf("请输入一个数字:");
scanf("%d",&a);
b=a&240;
printf("%d\n",b);
结果听到别的人说什么左移右移,我就有点傻了:这需要左移右移干嘛?不过看了一下,的确觉得自己hin天真,想法弱爆了,完全没有考虑到数字的虚化问题,因为我是用一个具体数字做例子得出一个解法,然后写程序,这就导致我忽略了如果输入的数字很大时的情况。准确的程序如下:
int a;
int b=0,c=0;
scanf("%d",&a);
a=(a>>4);
c=~(~0<<4);
b=a&c;
printf("%d\n",b);
这样写在不溢出的情况下,随便什么数都能得出结果,而且完全由计算机计算。
在学习编程的过程中,我们要养成让计算机自己计算的习惯,能“懒”绝不勤快。解决要一个题目,首先要知道它的算法,由具体化到模糊化,即可以先用一个具体的数字来让自己明白基本的解决步骤,但是也要考虑到,程序针对的不仅仅是一个数字,这个时候就要把数字模糊化,考虑大范围的情况。
学习记录,仅个人想法。
- 占位符体现的编程思想
- Equals()方法体现的编程思想
- Filter,一种aop编程思想的体现
- COM思想很好的体现了面向接口编程思想。
- Linux驱动体现的编程思想---面向对象的编程思想
- java中多态的体现思想
- 测试思想 QA的价值体现
- 将通用进行到底——分层思想的另类体现
- ERP体现的管理思想之众说纷纭-安尚
- ERP体现的管理思想之众说纷纭-安尚
- C声明变量的用法体现C++封装思想
- 黑马程序员---String练习中体现的思想
- 《STL源码剖析》学习--STL体现的思想
- 【ITOO】 EF框架之ORM思想的体现
- javascript中面向对象思想的体现(一)
- 举例说明java面向对象思想的体现:抽象类、接口
- 加班能体现编程的热情吗?
- Java 泛型高级编程 ? 类型占位符的使用
- Activity的生命周期
- 状态压缩DP 初邂逅
- POJ 2251 Dungeon Master (广搜)
- java.lang.OutOfMemoryError: GC overhead limit exceeded问题解决
- linux
- 占位符体现的编程思想
- 安卓下的文件分享——FileProvider
- Linux 下的软件为什么很多需要编译,而不是直接发布二进制代码?
- 新浪随便看看
- 第三章第20题
- WZJ的数据结构(零)KMP
- c语言 switch语句查询季节
- NHibernate:N+1 Select查询问题分析
- Maven仓库—Nexus环境搭建及简单介绍