0. const受保护权限
请看下面的代码片
int num = 0;
const int *p = #
这一段代码在C语言中是可以通过的,因为num在定义的时候没有修饰,所以权限很大,当用*p指向它的时候可以对它进行修改。
再看下面的代码片:
const int num = 0;
int *p = #
这段代码在C编译器中会报错,原因是,定义num的时候被const修饰,那么这个num就是受保护的,即是num不能随便改变,所以当用*p指向它的时候会报错。
1. printf的返回值
C语言中printf的返回值是打印在屏幕上的字符的个数。
2. 计算一个数二进制位中1的个数
这里我们提供第二种方法就是,我们可以使这个数先&1,如果结果是是1,则count++,然后把这个数右移一位,再次&1,这些操作放在一个循环里面,循环32,但是这样做循环了32,如果我只是后几位有1,前面都是0呢,显然这样做的话还不是最优的结果
下面我们提供第三种方式,int n = 11;n = n&(n-1);这里n&(n-1)实际的操作结果就把原本的n的二进制中的最后一个1消掉了,这就是突破点。我们可以利用这个特点,做一个循环while(n != 0){count++;n=n&(n-1)};这个时候计算的count就是n中1的个数。
3. 数值和0的比较
整型和0的比较:if(0 == a)
指针和0的比较:if(NULL == p)
浮点型和0比较:if(a>-0.000000000000001&&a<0.00000000000000001)
4. 数组名
int arr[10];
1. int sz = sizeof(arr);
2. &arr;
只有上面的这两种数组名的使用方式时,arr代表的是整个数组,其余的方式均表示数组首元素的地址。
如:sizeof(arr + 1);它表示的就是数组下标为1的元素。
5. 用联合体测试大小端
请看下面的代码片
union tag{
int a;
char c;
}tag;
tag.a = 1;
printf("%c",tag.c); //因为在联合体中,a和c使用共同的存储空间,且他们的起始位置一致,所以当给赋值1之后,
//如果是小端存储则这个1被放在了高地址,即他们的共同内存中的后面的位置,
//这样使用%c打印的时候,是从开始的地方算起,所以就得到一个未知的量
6.memset的使用
memset(地址,0,sizeof(...))
地址传入的是一个地址,然后那个0是你要初始化的内容,最后的是长度习惯用sizeof进行求解,这里的长度是以字节为单位的
7.malloc申请空间后判断
pmail->maillist = (PeoInfo*)malloc(sizeof(PeoInfo)*ALLMAX);
if (NULL == pmail->maillist)
{
perror("malloc失败");
return;
}
8. 链表操作
链表中有一些内容不好操作时,比如删除屋头节点的非尾节点,或者在链表前面插入一个元素,想着用赋值操作
9.pmail->maillist = realloc((pmail->maillist), sizeof(PeoInfo)*((pmail->MAX) + 3));
Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。 我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...
利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...
题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...
题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / 2 6 / 1 3示例 1: 输入: [1,6,3,2,5] 输出...
给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num = “1432219”, k = 3 输出: “1219” 解释: 移除掉三个数字 4, 3, 和 2形成一个新的最小的数...
代码展示: http://paste.ubuntu.com/23693598/ #include
Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Ch...
/*Name: NYOJ--811--变态最大值Author: shen_渊 Date: 17/04/17 15:49Description: 看到博客上这道题浏览量最高,原来的代码就看不下去了 o(╯□╰)o
*/#include
生成唯一号:思路,根据yymmddhhmmss+自增长号+唯一服务器号( SystemNo)生成唯一码,总长度19,例如:1509281204550000101. public class UniqueNumber { private static long num = 0;//流水号 private sta...
给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 10^9。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。 字典排序数的实现...
找规律题 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,...