简单好玩的编程代码有哪些?创意告白的编程代码大全

shenxiaocen 2023年1月13日11:27:18操作系统评论93阅读模式

编程的快乐在于它不仅满足了我们内心深处进行创造的欲望,而且还唤醒了每个人内心的情感,写下一行代码,立即就能知道它的对错;你写完一个程序,一运行就能知道成功与否,创作出一个又一个有趣的画面是那么的令人心动,那么简单好玩的编程代码有哪些呢?

简单好玩的编程代码有哪些?创意告白的编程代码大全

简单好玩的编程代码有哪些?

换两个变量的值

比如交换a,b两个变量的值。(默认它们都是int类型)。经典而又安全的解法是这样的:

简单好玩的编程代码有哪些?创意告白的编程代码大全

借助第三变量完美的解决了问题,安全又易懂。然而我看到有些人不需要借助第三变量的,他们的解法是这样的:

简单好玩的编程代码有哪些?创意告白的编程代码大全

这种方法虽然也成功交换了两个变量的值,但出错的情况也不容小看。以int类型为例,int类型的变量占四个字节,一个字节8位,总共是32位。一个int类型的变量能最大表示的二进制数是

11111111-11111111-11111111-11111111对应的十进制数是4294967295。

而如果我们交换的两个变量的和超过了这个数就会出错。

出错在这一步:a+=b。从理论上是约有一半的可能出错,但从实际上看可能不会,因为我们不会交换这么大数量的值。其实我做过的程序案例那么多,我还没遇到过要交换两个变量的。

第二种方法除了可以省一个变量的内存外,我还没看到有别的优点。如果你觉得这种方法逼格高一点,那么请看下面的第三种方法:

简单好玩的编程代码有哪些?创意告白的编程代码大全

这种方法用到了异或运算浮:^。异或运算的意思是两个变量对应的二进制数相应位值是否相异,相异的为1,相同的为0也就是 0^0=0; 1^1=0; 0^1=1; 1^0=1; 比如2^6=4;

因为十进制的2对应的二进制为010;十进制的6对应的二进制为110,对应位相异或后得100也就是4。学过逻辑电路的孩子们应该更加清楚异或运算。

这种方法逼格更高不过缺陷也更大,因为异或运算属于位运算,而位运算只能作用于整数类型,也就是说用这种方法不能交换两个有小数的变量了。

神奇的死循环

有时候下面这段代码会出现死循环:

简单好玩的编程代码有哪些?创意告白的编程代码大全

原本只是想通过for循环让数组的每一个元素为零,没想到却出现了死循环。很多人觉得问题出在i<=10这里,没错这是直接原因,但死循环的根本原因却是在第一行。

编译器有可能将i的存储地址紧接在数组之后,当数组越界访问到a[10]时正好是i的位置将i置0了,也就永远循环下去了。这就是为什么每本书都说数组越界会产生意想不到的效果。

当然也有可能编译器不把i的地址放在数组之后,你得看它心情。避免上述错误的方法就是养成良好的编程习惯。能用局部变量就不用全局变量,能用作用域小的变量就不用大的,比如上面的i明明就可以放在for循环里面定义。

shenxiaocen
  • 本文由 发表于 2023年1月13日11:27:18
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/13571.html

发表评论