自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 task_struct结构

在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理。因此了解task_struct的结构对于我们理解任务调度(在linux 中任

2016-08-25 23:36:53 468

原创 Linux之atime,mtime,ctime

1)modification time (mtime,修改时间):这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变。ls -l filename 列出文件的 mtime。2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。ls -lc filena

2016-08-24 12:01:43 347

原创 static const extern在C与C++中的区别

C中const的用法:1, 在定义变量时使用(由于const常量在定义后不能被修改,所以在定义时一定要进行初始化操作):a)  最简单的用法,说明变量为一个常变量(在以下例子里,int 和const的先后顺序可以改变的,这无所谓):     const int a=100;      int const b=100;b)  说明指针为指向常数的指针,即指针本身的值是可以改变的:

2016-06-02 18:40:39 987

原创 类的六大默认成员函数

1. 构造函数如果类的成员变量为私有的,要对这些成员初始化必须调用一个共有的成员函数来进行.这个共有的成员函数在定义对象的同时会自动执行一次,被调用的函数称为构造函数.构造函数的特点:1.函数名与类名相同.2. 无返回值.3.构造函数可以重载.4.实例化对象时,系统调用相应的构造函数.5.构造函数可以在类中定义,也可以在内外定义.6.没有自定义构造函数,系统会给

2016-06-02 15:43:30 2619

原创 atoi函数的实现及注意事项

atoi函数的实现及注意事项在编写模拟实现atoi函数时,不应该只考虑到只有的数字字符串的简单情况,除此之外,还应该考虑到以下几种状况。1. 指针为NULL2. 空字符串3. +,-号处理4. 溢出处理5. 遇到异常字符怎么处理至于atoi函数的返回值,如果只是返回0或者1,没有状态标记,那么这个0或者1是正常状态的0或者1 ("0"),还是异常状态的0或者1("0

2016-05-03 18:22:41 3222

原创 利用冒泡排序法模拟qsort函数

利用冒泡排序法模拟qsort函数,列如对int数组排序,struct数组排序,字符串排序,在以下函数参数里为了方便接收实参,形参给出了void *这种形式,至于函数的实现部分必须要强制转换为需要的类型。int Compare_int(const void* num1, const void* num2){return *(int *)num1 - *(int *)num2;}int

2016-04-18 21:03:20 574

原创 递归逆序字符串

//递归逆序字符串r#include#include#includevoid Reverse_str(char* str){ int len = strlen(str)-1; char* end = str+len; char tmp = *str; if (len > 0){ *str = *end; *end = '\0'; Reverse_str(str+1);

2016-04-12 14:15:43 377

原创 可变参数列表

//可变参数列表#include#includedouble Ave(int num,...){ int i = 0; double sum = 0.0; va_list arg; va_start(arg, num); for (i = 0; i < num; i++){ sum += va_arg(arg, double); } va_end(arg); return

2016-04-12 14:12:53 279

原创 student a am i -> i am a student

//student a am i -> i am a student#include#includevoid reverse(char* start, char* end){ assert(start); assert(end); char tmp = 0; while (start < end){ tmp = *start; *start = *end; *end =

2016-04-12 14:11:52 430

原创 斐波那契数列

//斐波那契数列#includeint fun(int n){ int num1 = 1; int num2 = 1; int num3 = 1; if (n <= 2){ return num3; } while (n>2){ num3 = num1 + num2; num1 = num2; num2 = num3; n--; } return nu

2016-04-12 14:10:18 277

原创 大端小端的判断方法

大端字节序:低字节存储在高地址处,高字节存储在低地址处。小端字节序:低字节存储在低地址处,高字节存贮在高地址处。#includeint Fun1(){ int num = 1; char *p = (char *)# if (*p == 1) return 0; //小端 else return 1; //大端}union un{ int num; char c

2016-04-12 14:08:00 332

原创 三子棋

#include#include#include#define ROW 3#define COL 3void init_board(char arr[ROW][COL]);void displar_board(char arr[ROW][COL]);void play_move(char arr[ROW][COL]);void comper_move(char arr[ROW][C

2016-04-02 19:35:09 460

原创 链表的增删、查找以及逆序

#include#include#define m 10typedef struct List{ int number; int data; struct List *next;}List , *Plist;int a[2][m]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 80,81,82,83,84,85,86,87,88,89 };in

2016-03-30 13:02:28 407

原创 容纳40位数的n!值

#include int main(){ int i,j,k; int r; int digit=1; int n=34; int data[40]={0}; data[1]=1; for(i=1;i<=n;i++){ for(j=1;j<=digit;j++){ data[j]*=i; } for(j=1;j<=digit;j+

2016-03-18 11:29:30 517

原创 100-200之间的素数

#include#includeint main(){    int arr[]={2,3,5,7,11,13};    int i,j,k;    int n=0;    int m;for(i=101;im=0;k=(int )sqrt(i);for(n=0;arr[n]if(nif(i%arr[n]==0){m=1;break;}

2016-03-16 15:45:06 272

原创 交换两个变量的值

交换两个变量的值交换两个变量的值是我们学习C语言常见的问题,通常我们采取的方式是定义中间变量,通过中间变量交换这两个变量值。1、直接在主函数里完成 int a=2,b=3; int  t; t=a;a=b;b=t;2、通过定义Swap()完成交换,其中可以通过引用、地址传递完成变量值交换   ①、引用#includevoid Swap1(int &a,int &

2016-03-15 19:21:35 372

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除