精通C语言是有难度的,却也不是没有方法。
首先,内存意识。
C语言和其他高级语言不一样,它的很多操作都是直接面向内存(面向硬件)。
困难的是,对于C语言,不论是数据类型、操作符、语句、函数,都或多或少、或简单或复杂地通过地址操作内存。
幸运的是,一旦掌握内存,代码功能会非常强大,执行效率非常之高。
举个例子。
如何把一个二进制数转换成十进制以字符的形式输出?
做过十进制位数分离的程序员都知道,可以采取“模10再除10”的方法把一个二进制数按十进制分离每一位。
尝试着去理解下面的程序。
while(putchar(value % 10 + '0') && (value /= 10));
putchar()函数的原型是int putchar(int ch);执行结束返回1。
这个代码风格已经算优质了,只不过这样是倒序的,想要实现正序排列可以使用递归。
void binary_to_ascii (unsigned int value)
{
unsigned int quotient;
quotient = value / 10;
if(quotient != 0)
binary_to_ascii(quotient);
putchar(value % 10 + '0');
}
但是当你明