- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 内存操作函数memmove,memcpy,memset
通过字符串的学习,我们知道字符串操作函数的操作对象是字符串,并且它的结束标志是结束符\0,当然这个说的是不受限制的字符串函数。然而当我们想要将一段内存的数据复制到另一块内存时,我们不能使用字符串操作函数,当然也不能一个一个复制,所以就引入了内存操作函数。memcpy函数原型:void *memcpy(void *dst, const void *src, size_t size
2016-04-30 21:21:41 2116
原创 找出一个数组中的”单身“
已知一个数组中,除了一个数字出现一次外,其他数字都出现两次,试找出这个数~~思路分析:当看到这个题目,我就想,既然只有一个数出现一次,那么我们可以遍历这个数组,只要遇到相同的两 个数,就把它们置为一个比较大的数,最后输出那个没有被改变的数。#define _CRT_SECURE_NO_WARNINGS 1#includeint main(){
2016-04-30 17:49:46 825
原创 浅谈内存管理
内存分区有哪些? a)栈(stack):存储函数内部的变量,包括局部变量和形式参数,在进入函数时自动分配,离开函数时自动清除。 b)全局区:又叫静态区,存放全局变量和静态变量,全局变量也称外部变量,它是在函数外部定义的变量,全局变量是所有函数的公用变量。静态变量和全局变量被分配到同一块内存中,静态局部变量仅限于在定义处的函数使用,但是离开函数后数值一直保留,直到程序
2016-04-16 21:14:03 694
原创 库函数模拟(二),可变参数列表
我们将实现printf的模拟。在这之前,先总结可变参数列表的有关知识点~在函数原型中,列出了函数期望的参数,但原型只能显示固定数目的参数。其实,让一个函数接收不同数目的参数也是可以的。可变参数列表是通过宏来实现,这些宏定义于stdarg.h文件,它是标准库的一部分。这个头文件声明了一个类型va_list和三个宏——va_start、va_arg、va_end.在编译器下,我们通过查看定
2016-04-14 22:42:25 915 2
原创 某些库函数的模拟实现(一)
模拟实现以下函数:strcpy()函数~strcat()函数~strstr()函数~strlen()函数1.strcpy()函数
2016-04-13 22:30:39 610
原创 c语言实现输出一个数的每一位
比如输入1234,在屏幕上打印出1 2 3 4代码展示:方法一:#define _CRT_SECURE_NO_WARNINGS 1#include#include实现打印一个数的每一位int main(){ int num = 1234; int count = 0;//用来保存数字的位数 int tmp = num; int y = 0; while (tmp)
2016-04-12 10:55:50 10734 2
原创 c语言中的关键字volatile
c语言中的关键字volatile:volatile和const一样是类型修饰符,用它修饰的变量可以被某些编译器未知的因素修改。遇到这个关键字声明的变量,编译器对访问文该变量的代码不再进行优化。看下边一段代码:#define _CRT_SECURE_NO_WARNINGS 1#includeint main(){ const int num = 10; int *p = #
2016-04-10 16:01:25 547
原创 c语言简单程序妙解
1.输入一个字符串,要求按如图所示格式输出~ 题目分析;看到题目,一开始的想法是利用嵌套for循环一行一行打印,其实这样实现起来比较麻烦~不妨利用字符数组两边赋值来实现~#define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){ char arr1[] = "hello world!"; char arr
2016-04-10 14:23:59 994
原创 输入输出函数(二)
详解getchar()函数 功能:1.接收一个字符~ 2.可以用于清理缓冲区 3.使屏幕暂停 清理缓冲区的程序代码: while((ch = getchar())!=EOF&&ch!='\n') { ;
2016-04-10 14:02:22 474
原创 输入输出函数(一)
格式化输入函数:scanf() 函数原型:int scanf("参数格式",参数地址......);注意:scanf函数有返回值,且为整形。 scanf函数虽然使用起来比较简单,但是使用不当会造成错误。 scanf函数自动停止的三种情况: 1.遇到空格,回车,或tab键; 2.遇到指定的宽度;比如%2d 3.遇到非法字符。格式化
2016-04-09 22:08:19 597
原创 大端小端
数据在计算机中是以其补码形式存储。当数据的低字节放在低地址,高字节放在高地址,我们称其为小端字节序;相反的,当数据的低字节放在高地址,高字节放在低地址,我们称其为大端字节序。举例:比如,int a = -2; -2的原码:10000000 00000000 00000000 00000010 反码:11111111 11111111 1111111
2016-04-09 09:55:21 977
原创 字符串反转问题
题目:给定字符串“student a am i”,要求输出“i am a student”.(要求空间复杂度为1,不使用库函数)题目分析:student a am i i ma a tneduts(字符串整体反转) i am a student(字符串中每个单词反转) 整体反转的时候,一定不要反转\0,如一旦
2016-04-08 22:31:47 806 1
原创 猜数字(c语言实现)
猜数字小游戏:系统随机产生一个100以内的正数,要求参与者猜出系统产生的数,要是利用2分法,7次就足够了。如果参与者不知道使用2分法,如果9次猜不对,就算游戏失败。游戏可以一直进行,只要参与者不点退出键。#define _CRT_SECURE_NO_WARNINGS#include#include#includevoid game(){ int ret = 0; int nu
2016-04-04 15:09:10 2874
原创 关于strlen和sizeof
strlen是函数,在库string.h中,用于求字符串的长度(不包括结尾符‘\0’),也可以求字符数组的长度(该数组必须以\0结尾)。sizeof是关键字。可以求得静态分配的内存的数组的长度,但不能求动态分配的内存的大小;当表达式作为sizeof的操作数时,返回表达式计算结果类型的大小;可以对函数调用求大小,返回函数返回值类型的大小;sizeof求得的结构体的大小并不等于各个成员大小的简单相
2016-04-04 11:58:55 1192 1
原创 推理问题(c语言实现)
1.5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第一,我第三。 B选手说:我第二,E第四。 C选手说:我第一,D第二。 D选手说:C最后,我第三。 E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 题目分析:看到这个题目,我们应该能想到利用多层for循环,
2016-04-04 10:29:54 1627
原创 作用域问题
编译器可以确认4种不同类型的作用域:文件作用域、函数作用域、代码块作用域、原型作用域。代码块作用域:可以被这个代码块中的所有语句访问。注意:当代码块处于嵌套状态,声明于内层代码块的标识符的 作用域到达该代码块的尾部;当代码块不是嵌套的时,声明于每个代码块的变量无法被另一个代码块 访问。文件作用域
2016-04-02 10:20:26 577
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人