
学习记录
看风听雨
欢迎访问我的博客,一起探讨安全技术。
展开
-
静态全局变量
Static声明该类型属于静态类型不允许外部文件访问,如果是在一个函数内部声明一个静态变量则说明该变量只能在函数内部使用,其他函数不能调用。C语言可以通过static来实现私有化,面向对象不是一种语言而是一种思想。Extern声明表示该变量或者函数可以被其他文件调用。Static void getnum();Int temp(){ getnum()}void原创 2018-02-28 15:03:50 · 680 阅读 · 0 评论 -
线程不同步的原因,如何同步,简单的防止程序多开
多线程编程中主要的问题是线程同步问题。1.什么时间需要线程同步访问共同的内存数据2.为什么需要线程同步多线程程序在执行时由于windows系统机制,会在线程之间来回切换俗称切时间片,当我们的程序没有进行线程同步处理时,Window切时间片不在我们的受控范围内,也就是我们的代码在执行时由于切时间片的原因代码可能会跑到一片被切走执行其他线程的代码,此时我们不知道代码执行到了何处,这种是原创 2014-07-31 02:24:55 · 3759 阅读 · 0 评论 -
不可逆加密思路
原创 2014-03-19 01:57:54 · 628 阅读 · 0 评论 -
3.17数组知识补课
1.定长管理定义一个二维数组每行放固定长度的字节,删除的话首字节用/0代替,缺点,效率低空间利用率低,不方便管理,每次进行删除或增加操作都要便利数组。2.变长管理3.可以定义一个多维数组,例如10000个字符串的增删查改[0][5][5]hellow [0][2][5]herld [0][6][6]printf假定这三个字符串空间连续。则用第一个标志位表示空间是否已用,第二个标原创 2014-03-18 01:45:50 · 623 阅读 · 0 评论 -
3.14笔记
1.在获取字符串输入时尽量不要用gets(),因为gets()不检查长度,如果数据过长可能会覆盖内存其他位置,造成程序错误。2.内存拷贝时高地址向低地址拷贝时正向拷贝就可以,如果是低地址向高地址拷贝要考虑内存重叠问题,如果有重叠则从低地址的最高位向高地址最高位反向拷贝例:高往低拷1 2 3 4 5 6 7 8 9 0a b如果要从b将数据拷贝到a 因为b为高地址则第一次拷贝b[原创 2014-03-18 01:44:11 · 532 阅读 · 0 评论 -
给定一个整数判断位数并实现分别输出每位,逆序输出。
//主要学习将数字转换位字符的存储方式//一个个位数加上字符'0'的ASCII值可以将数字转换为该数的字符形式。****************************************************************************#include #include void change(int Num);//主功能函数,转换数字为字符串,判断位原创 2014-03-09 01:45:07 · 2259 阅读 · 0 评论 -
身体状态统计(游戏)
#includeint birthdays();//计算从出生日到现在的总天数int sum();//计算某一年到某一年的总天数int count();//计算闰年与非闰年某一天为该年第几天int number();//计算第n月m天为该年第几天的函数void cheack(int num);//判断身体状态int door = 0;int main(){ int Year原创 2014-03-09 00:32:52 · 634 阅读 · 0 评论 -
统计出生天数
#includeint birthdays();//计算从出生日到现在的总天数int sum();//计算某一年到某一年的总天数int count();//计算闰年与非闰年某一天为该年第几天int number();//计算第n月m天为该年第几天的函数int door=0;int main(){ int Year1; int Month1; int Date1; int原创 2014-03-08 23:29:04 · 904 阅读 · 0 评论 -
统计出生天数(改进前)
#includeint birthdays();//计算从出生日到现在的总天数int sum();//计算某一年到某一年的总天数int count();//计算闰年与非闰年某一天为该年第几天int number();//计算第n月m天为该年第几天的函数int check();int door=0;int main(){ int Year1; int Month1; in原创 2014-03-08 19:58:36 · 672 阅读 · 0 评论 -
逆序输出
//逆序输出程序#include#define num 10void Change(int Array[],int N_num);void main(){int i;int Array[num]={0};printf("请输入要逆向输出的数字");for (i=0;i (sizeof(Array)/4);i++){原创 2014-03-08 01:21:24 · 781 阅读 · 0 评论 -
冒泡排序
/*冒泡核心思想每次比较相邻的两个数的大小,并进行交换,每轮都会选出一个最大或者最小的数,重复n轮就可以将n个数排序*/#include void F_Sort(int Array[],int Num);//排序主函数void main(){ int Num2; int Array[10]={0}; printf("请输入要排序的数字\r\n"); for(Num2原创 2014-03-07 21:06:02 · 580 阅读 · 0 评论 -
选择排序
/*选择排序核心思想假设第一个值为最值,让其与元素其他值进行比较,选取一个最值,以后每次从未排序元素选取一个最值*/#include void F_Sort(int Array[],int Num);//排序主函数void main(){ int Num2; int Array[10]={0}; printf("请输入要排序的数字"); for(Num2 = 0;原创 2014-03-07 19:00:25 · 529 阅读 · 0 评论 -
求素数程序
#include #include int is_prime(int n){ int i; for (i=2;i<=(sqrt(n));i++)//判断一个数是否为素数只需对其开平方范围内的数挨个求模就知道了,如果此处为100,则用100对1—10分别进行求模。 { if(n%i==0)//判断n对i取模的值是否为零如果不为零则该表达式不会执行,如果为零,则函数返回0,继续自加原创 2014-03-06 00:32:37 · 2101 阅读 · 0 评论