Shimejing

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年2月19日

摘要: #include #include size_t mstrlen(const char *s){ assert(s != NULL); if (s == NULL) { return 0; } size_t ret = 0; while (*s != '\0') { ++ret; ++s; } return ret;}void test_strlen(){ char a[] = "hello,world"; printf("%lu\n", mstrlen(a));}char *mstrcpy(char *dst, const char * 阅读全文
posted @ 2014-02-19 08:58 Shimejing 阅读(280) 评论(0) 推荐(0) 编辑

摘要: 冒泡排序:void bubble_sort(int *a, int n){ int i, j; for(i = 0; i a[j + 1]){ a[j] = a[j] + a[j + 1]; a[j + 1] = a[j] - a[j + 1]; a[j] = a[j] - a[j - 1]; } }}选择:void select_sort(int *a, int n){ int start, next, min, swap; for(start = 0; start temp){ for(k = i; k < j;... 阅读全文
posted @ 2014-02-19 08:45 Shimejing 阅读(162) 评论(0) 推荐(0) 编辑

摘要: 一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区 ―常量字符串就是放在 阅读全文
posted @ 2014-02-19 08:09 Shimejing 阅读(198) 评论(0) 推荐(0) 编辑

摘要: 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值: int a[3][4]; int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0] p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]所以数组指针也称指向一维数组的指针,亦称行指针。指针数组 定义 in 阅读全文
posted @ 2014-02-19 08:02 Shimejing 阅读(200) 评论(0) 推荐(0) 编辑