C语言
F什么琛。
这个作者很懒,什么都没留下…
展开
-
C语言-文件翻译的过程
从一个C语言的源文件到可执行程序的过程:编译器通过编译将源文件转换为目标文件,然后通过连接器(linker)将目标文件捆绑在一起,形成一个单一而完整的可执行程序。编译本身又分别有以下几个阶段,①预处理阶段②编译③汇编④链接;1.预处理翻译过程所要做的第一步就是头文件展开,把stdio.h里的文件全部展开,这个过程虽然我们看不到但是确真实存在,在这个过程中,编译器还会进行宏替换,把我们注释掉的内容完全抹去。我们可以在linux下观察到各个过程。首先我们先编辑一个test.c文件#include &原创 2020-12-01 16:57:47 · 543 阅读 · 0 评论 -
C语言之文件操作
文件的定义磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件(包括源程序文件(.c),目标文件(.obj),可执行程序(.exe))、数据文件(文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件)文件的类型求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。文件的打开和关闭文件在读写之前应该先原创 2020-11-24 21:17:09 · 113 阅读 · 0 评论 -
C语言之结构体相关知识
1.结构体变量的定义和初始化结构体变量的定义struct point{ int x; int y;}p1; //声明类型的同时定义变量p1struct point p2; //定义结构体变量p2结构体变量的初始化struct point={x,y}; //定义变量的同时赋值struct Stu{ char name[20]; int age;};struct Stu s={"zhangsan",20};2.结构体变量的大小计算结构体大小的计算涉及到原创 2020-10-30 16:31:20 · 210 阅读 · 0 评论 -
字符串函数的模拟实现
1.strlen函数的模拟实现该函数求出一个字符串的长度,结束的标志为’\0’①函数实现//strlen的模拟实现#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int my_strlen(const char* str){ assert(str); int count = 0; while (*str) { count++; str++; } return count;}int main(){原创 2020-10-28 21:23:13 · 117 阅读 · 0 评论 -
sizeof和strlen的区别是什么?
一、定义1、sizeof是C语言中的一个运算符,它的作用是计算一个变量或者一个类型所占空间的大小。2、strlen是C语言中的库函数,所在头文件为#include <string.h>。它函数原型为unsigned int strlen(const char *p); 其中p为指定的字符串。注:strlen只能用char *作为参数,它求的是字符串的实际长度,当遇到第一个’\0’结束。如果参数不是char *类型,将会产生编译警告或报错。二、举例例1.#include <s原创 2020-10-14 20:25:55 · 237 阅读 · 0 评论 -
数据在内存中的存储
一、数据类型1.内置类型整形家族: char short int longchar: signed char 把最高位当成符号位unsigned char 不会把最高位当成符号位char是signed char还是 unsigned char 取决于编译器short:signed shortunsigned charshort是signed shortint 和long与short一样浮点数家族: float double2.自定义类型数组类型原创 2020-10-11 13:25:45 · 165 阅读 · 0 评论 -
用C语言实现扫雷游戏
扫雷小游戏首先从main函数分析游戏的整体框架:int main(){ int input = 0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:》"); scanf("%d",&input); switch(input) { case 1: game(); break; case 0: printf("退出游戏!\n"); break; default:原创 2020-09-09 14:08:40 · 167 阅读 · 0 评论 -
用C语言解决:青蛙跳台阶问题
问题描述一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。输入输入一个整数,作为台阶的数目。输出输出跳上n个台阶有多少种跳法。分析设f(n)表示青蛙跳上n级台阶的跳法数。当只有一个台阶时,即n = 1时, 只有1中跳法;当n = 2时,有2种跳法;当n = 3 时,有3种跳法;当n很大时,青蛙在最后一步跳到第n级台阶时,有两种情况:一种是青蛙在第n-1个台阶跳一个台阶,那么青蛙完成前面n-1个台阶,就有f(n-1)种跳法,这是一个子问题原创 2020-09-05 09:32:56 · 1326 阅读 · 0 评论 -
用C语言解决:汉诺塔问题
问题描述汉诺塔 ( 又称河内塔 ) 问题是源于印度一个古老传说的益智玩具 。 古代有一个梵塔 , 塔内个座 A 、 B 、 C , A 座上有 64 个盘子 , 盘子大小不等 , 大的在下 , 小的在上 。 有一个和尚想把64个盘子从 A 座移到 C座 , 但每次只能允许移动一个盘子,并且在移动过程中 ,3 个座上的盘子终保持大盘在下,小盘在上,在移动过程中可以利用 B 座。输入输入一个整数,作为盘子的数目输出输出每一个盘子的移动过程每次的移动记录被记录为A->B、A->C、B-&g原创 2020-08-30 16:04:53 · 397 阅读 · 0 评论 -
用C语言实习三子棋游戏
## C语言:三子棋游戏首先,我们从main函数开始写起,分析游戏的整体逻辑int main(){ int input=0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:"); scanf("%d",&input); switch(input) { case 1: game(); break; case 0: printf("退出游戏\n"); break;原创 2020-08-29 13:43:22 · 239 阅读 · 0 评论