C/C++
终南樵夫
记录学习经历,分享学习乐趣
展开
-
交换两个数
1、使用中间变量c=a;a=b;b=c;缺点:浪费空间2、相加后相减a=a+b;b=a-b;a=a-b;缺点:可能溢出3、使用位运算a=a^b;b=a^b;a=a^b;缺点:无使用宏定义:#define swap(a,b) ((a)^=(b)^=(a)^=(b))原创 2016-03-10 14:54:22 · 208 阅读 · 0 评论 -
不用比较语句比较两个数的大小
要求:编写函数求两个整数 a 和 b 之间的较大值。要求不能使用 if, while, switch, for, ?: 以及任何的比较语句。代码实现如下:int compare(int p1, p2){ int d = (unsigned int )(p1-p2)>>31; int array[] = {p1,p2}; return array[d原创 2016-03-10 17:06:43 · 566 阅读 · 0 评论 -
结构体大小的计算
结构体大小的计算需要遵循两个原则:1、结构体成员变量的偏移量必须是此变量大小的整数倍;2、整个结构体的大小必须是所有最大成员变量的整数倍如:struct A{ int I; short S; float F;};sizeof(struct A) = 12。计算过程:I 的偏移量是0,0是4的整数倍,S的偏移量是4,4是1的整数倍;F的偏移量是5原创 2016-03-10 15:20:17 · 353 阅读 · 0 评论 -
C++ 语法规则
C++ 中的布尔类型:布尔类型只占用一个bit ,但是如果连续定义多个布尔类型时,编译器可能会多个布尔类型定义在一起。true 编译器用1来表示。false 编译器用0来表示。将一个其他类型的数据赋给布尔类型变量:C++编译器会将所有的非0的值转换为true(1),将0 转化为false(0)。三木运算符 ? : :将一个三目运算符作为左值: (a>b?a:b) = 3 C语原创 2016-03-11 09:29:53 · 3010 阅读 · 0 评论 -
几种常见排序算法
本文介绍几种常见的排序算法及其C实现。介绍的排序算法有:冒泡法、直接插入法、直接选择法。1、冒泡法。冒泡法排序按照大小顺序和冒泡方向分可以分为四种:分别为:元素从小到大、从左到右排;元素从小到大、从右到左排;元素从大到小、从左到右排;元素从大到小小、从右到左排。这里通过元素从小到大、从左到右排的方法举例介绍。 元素从小到大、从左到右排的冒泡法排序思想是:将待排序的相邻的元素两两比原创 2015-10-26 15:40:05 · 460 阅读 · 0 评论