0基础学习C语言
文章平均质量分 61
学习C语言过程中的总结与探讨
神化我
活到老,码到老
展开
-
如何测试机器的大小端存储
大小端的概念大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。测试机器...原创 2018-11-13 16:34:58 · 177 阅读 · 0 评论 -
其它I\O函数介绍(一)
其它I\O函数介绍fflushftellungetcfseeksetbufsetvbufrewindfgteposfsetposfeofferrorclearerrtemfileremoverename一、fflush 1.定义 函数名:fflush 功 能: 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时。 头文件:stdio.h ...原创 2018-08-19 21:41:45 · 451 阅读 · 0 评论 -
指针、数组练习题
指针、数组练习题我学习过程中总结了9道比较典型的练习题。#define _CRT_SECURE_NO_DEPRECATE 1#include "stdio.h"//练习1int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int*)(&a + 1); printf("%d,%d\n", ...原创 2018-08-15 13:20:16 · 4609 阅读 · 6 评论 -
0基础学C语言--操作符
0基础学C语言–操作符1. 分类 算术操作符 位移操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员算术操作符 1.除了%操作符外,其他的几个操作符可以用于整数和浮点数。 2.对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数就执行浮点数除法。 3.%操作...原创 2018-07-25 17:03:56 · 208 阅读 · 1 评论 -
可变参数列表解析及模拟实现printf函数
模拟实现printf函数,可完成下面的功能 能完成下面函数的调用。 print(“s ccc d.\n”,”hello”,’b’,’i’,’t’,100); 函数原型: print(char *format, …) 代码如下:#include "stdio.h"#include "stdarg.h"void show(int n){ if (n > 9)...原创 2018-07-26 00:09:59 · 174 阅读 · 0 评论 -
函数的栈帧
栈帧也叫过程活动记录,是编译器用来实现函数调用过程的一种数据结构。C语言中,每个栈帧对应着一个未运行完的函数。从逻辑上讲,栈帧就是一个函数执行的环境:函数调用框架、函数参数、函数的局部变量、函数执行完后返回到哪里等等。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶...原创 2018-07-27 10:34:50 · 302 阅读 · 0 评论 -
main函数的参数解析及实现整数计算器
main函数的参数解析及实现整数计算器我们平时在使用main函数的时候是很少注意main函数的参数,但实际上main函数是有参数的,main函数是由系统调用,在调用的同时传参。 main函数的参数原型:int main(int argc, char *argv[ ], char* envp[ ]){ program-statements}那这里有三个参数的: 第一个...原创 2018-07-27 21:03:00 · 606 阅读 · 0 评论 -
C语言字符串函数总结:模拟实现常用的字符串类函数(strlen、strcpy、strcmp........)
总结:模拟实现常用的字符串类函数(strlen、strcpy、strcmp……..)1. strlen 2. strcpy 3. strcat 4. strstr 5. strchr 6. strcmp 7. memcpy 8. memmove 1.strlen有3种方法实现: a.计数器实现 代码如下:#include <stdio.h&gt...原创 2018-07-29 08:56:02 · 469 阅读 · 0 评论 -
指针与数组中的难点剖析
指针与数组中的难点剖析1. 指针数组指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。首先先定义一个指针数组,既然是数组,名字就叫arrchar* arr[]={"hello","world","fun","abcd"};arr就是我定原创 2018-07-31 16:27:59 · 477 阅读 · 0 评论 -
汉诺塔和青蛙跳台阶(递归函数的应用)
汉诺塔和青蛙跳台阶(递归函数的应用)1. 汉诺塔从数学角度来看如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上面,求移动的步骤和移动的次数 (1)n == 1 第1次 1号盘 A---->C sum =...原创 2018-07-31 18:01:14 · 666 阅读 · 0 评论 -
三子棋游戏
三子棋游戏程序:#define _CRT_SECURE_NO_DEPRECATE 1#define ROW 3#define COL 3#include <stdio.h>#include <string.h>#include<stdlib.h>#include<time.h>void menu(){ printf("...原创 2018-08-01 14:23:03 · 226 阅读 · 0 评论 -
通讯录(一)(数组)
数组实现通讯录我用三个源文件写代码 代码如下:test.c#define _CRT_SECURE_NO_DEPRECATE 1#include &amp;amp;amp;amp;quot;Contact.h&amp;amp;amp;amp;quot;void menu(){ printf(&amp;amp;amp;amp;quot;********************************\n&amp;am原创 2018-08-02 08:56:55 · 422 阅读 · 0 评论 -
通讯录(二)(动态内存开辟)
通讯录2(动态开辟)我把我上个博客写的静态通讯录改为动态内存开辟来实现代码如下:test.c#define _CRT_SECURE_NO_DEPRECATE 1#define _CRT_SECURE_NO_DEPRECATE 1#include &amp;amp;amp;quot;Contact.h&amp;amp;amp;quot;void menu(){ printf(&amp;amp;amp;quot;********原创 2018-08-02 15:17:10 · 269 阅读 · 0 评论 -
通讯录(三)(文件)
通讯录(三)(文件)由于用动态内存开辟改进通讯录之后虽然性能有所提高,但总体来说还是比较的挫。每次程序运行结束后通讯录就会销毁,而我们期望保存的信息也会消失,所以本次博客我把联系人信息存入文件中。 代码如下: test.c#define _CRT_SECURE_NO_DEPRECATE 1#define _CRT_SECURE_NO_DEPRECATE 1#define _CR...原创 2018-08-03 19:54:55 · 208 阅读 · 0 评论 -
I/O函数
I /O函数一. fopen()和fclose() 1.fopen():这个函数的作用是打开流。FILE* fopen( const char* filename, const char* mode);这个函数有两个参数,第一个参数是需要打开的文件名,例如test.txt;第二个参数是指打开文件时是以什么类型打开的,他的返回类型是一个结构体指针。 打开文件类型:w–以只写的类...原创 2018-08-08 16:01:17 · 320 阅读 · 0 评论 -
用状态机写注释转换
用状态机写注释转换将input.c文件中代码的c注释改为c++注释并且存储到output.c文件中。 代码如下: test.c#define _CRT_SECURE_NO_DEPRECATE 1#include "CommentConvert.h"void test(){ FILE* pfread = NULL; FILE* pfwrite = NULL;...原创 2018-08-05 21:12:00 · 344 阅读 · 3 评论 -
sscanf和sprintf函数的使用
sscanf和sprintf函数的使用首先这两个函数是内存函数。 1.sscanf 参数及返回类型int sscanf( const char *buffer, const char *format [, argument ] ... );我找到sscanf函数的10中用法:#define _CRT_SECURE_NO_DEPRECATE 1#include <std...原创 2018-08-08 18:42:49 · 697 阅读 · 0 评论 -
通过模拟用户登陆程序区别scanf和gets
题目 编写代码实现,模拟用户登录情况,并且只能登陆三次。只允许输入三次密码,如果密码正确提示登陆成功,如果输入密码错误,则退出程序。代码:get()输入密码#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;int main(){ cha原创 2018-07-19 12:10:35 · 183 阅读 · 0 评论