C语言再学习
自己复习复习
Ambition_TNT
您好
展开
-
C语言文件
文件的概述:文件通常是字磁盘或固态硬盘上的一段已命名的存储区。对我们而言,stdio.h就是一个文件的名称,该文件中包含一些有用的信息。然而,对os来说,文件更加复杂。c把文件看做是一系列连续的字节,每个字节都能被单独读取,至于UNIX环境中的文件结构相对应由于其他环境可能无法完全对应这个模型,C提供两种文件模式:文本模式和二进制模式。标准文件1.标准输入2.标准输出3.标准错误输出标准输入是系统的普通输入设备,通常为键盘;标准输出和标准错误输出是系统的葡萄输入设备,通常为显示屏。原创 2021-02-14 17:43:34 · 69 阅读 · 0 评论 -
随机骰子
头文件extern int roll_count;int roll_n_dice(int dice, int sides);dicerool.c文件#include "diceroll.h"#include<stdio.h>#include<stdlib.h>int roll_count = 0;//外部连接static int rollem(int sides)//该函数属于文件所私有{ int roll; roll = rand() % sides原创 2021-02-14 11:19:54 · 2320 阅读 · 0 评论 -
配内存:malloc() free();
分配内存:malloc() free();回忆一下,静态数据在程序载入内存时分配,而自动数据在程序执行是分配,并在程序离开该块是销毁。malloc()函数会找到合适的空闲内存块,这样的内存时匿名的。也就是说,malloc()分配内存,但是不会为其赋名。然而,它确实返回动态分配内存块的首字节地址。因此可以把该地址赋给一个指针变量并使用指针访问这块内存。因为char表示1字节,malloc()的返回类型通常被定义为指向char的指针。然后,从ANSIC标准开始,C使用一个新的类型:指向void的指针。原创 2021-02-14 11:17:20 · 68 阅读 · 0 评论 -
选择排序字符串
使用选择排序来对字符串排序,且只排序字符串的指针,不改变原字符串数组我们处理一个按字母表顺序排序字符串的实际问题。该程序主要是用strcmp()函数来确定两个字符串的顺序。一般的做法是读取字符串函数,排序字符串并打印出来。之前,我们设计了一个读取字符串的方案,该程序就用到这个方案。打印字符串没问题。程序使用标准的排序算法。思路:对于排序函数,传入一个指针数组,其中的每个元素指向字符串数组的一个元素#include<stdio.h>#include<string.h>#d原创 2021-02-13 18:30:03 · 1014 阅读 · 0 评论 -
指针
指针是一个值为内存地址的变量(数据对象)间接运算符,解引用运算符 *,后跟一个指针名或者地址时 *给出存储在指针指向地址上的值。指针的声明:类型说明符 * 指针名:类型说明符表面了指针所指向对象的类型表明了声明的变量是个指针。所有的指针类型存储的都是一个无符号16进制整型数在32位操作系统下所有指针类型大小的32,在64为os下为64位在定义指针类型一定要和变量对应上,指针回去找 类型*的大小的内存单元野指针和空指针:int* p=100;//把100这个地址给了p,这个就是野指针,即指针原创 2021-02-13 17:43:04 · 105 阅读 · 0 评论 -
递归实现十进制到二进制的转换
递归实现十进制到二进制的转换思想:在二进制中,奇数的末尾一定时1,偶数的末尾一定是0,所以通过取余运算可以得到最后一位的。即:n%2,计算的第一位数字实际上是待输出的最后一位数字,也就是说,在递归函数的递归调用之前计算n%2,在递归调用之后打印计算结果。这样,计算的第一个值整好是最后一个打印的值。要获得下一位数字,必须把原数除以2,相当于左移一位,如果计算结果是偶数,那么二进制的下一位就是0;如果计算的奇数就是1.`#include<stdio.h>void to_binary(unsi原创 2021-02-12 17:24:13 · 3955 阅读 · 1 评论 -
2021-02-12
c库的字符串的一些函数(具体见代码)#include<stdio.h>#include<string.h>#define _CRT_SECURE_NO_WARNINGS#define _CRT_SECURE_NO_WARNINGS_GLOBALS#pragma warning(suppress : 4996)#define SIZE 80#define LIM 10#define BUGSIZE 13#define ANSWER "Grant"#define ST原创 2021-02-12 11:14:34 · 118 阅读 · 0 评论 -
字符串的输入输出&strlen函数
char* fgets(char*s,int size,FILE *stream); 从stream指向的文件内读入字符,保存到s所指向的内存空间,直到出现换行符、读到文件结尾或是已读了size-1个字符为止, 最后会自动加上字符'\n'; 参数 s:字符串的首地址 size:指定最大读取字符串的长度(size-1) stream:文件指针,如果读键盘输入的字符串,固定写为stdin 可以接受\n 空格,大于等于时,没有\n 注意: ***由于gets函数的不安全性,在vs2015版本原创 2021-01-27 20:55:31 · 455 阅读 · 1 评论 -
C基础复习
C基础复习1.数据类型:有符号数是最高位为符号位,0代表正数,1代表负数。无符号数最高位不是符号位,而就是数的一部分,无符号数不可能是负数。当我们写程序要处理一个不可能出现负值的时候,一般用无符号数,这样可以增大数的表达最大值。 有符号:signed 无符号:unsigned 默认情况下,定义变量时省略使用signed,定义无符号的数时要用到unsigned无符号数输出的占位符:%u\U整型: 类型: 范围 short ,(-2^15 ~ 2^15-1) int ,(-原创 2021-01-26 20:37:39 · 97 阅读 · 0 评论 -
IDE/VS快捷键
VS是个强大的工具了解快键键将会很方便复制粘贴Ctrl +c -》Ctrl+v光标停留在一段代码处用上述操作就可以进行对该行代码的复制,这样就不需要选中一块了。撤销Ctrl + z补全Tab键提示联想:Ctrl +j智能补全:Alt+ <-字母大小写转换小写变大写: Ctrl+shift+u大写变小写:Ctrl+u移動代码Ctrl+方向键智能缩进-Ctrl+k+f调试:Ctrl + k,Ctrl + f 自动格式化代码Ctrl + k原创 2021-01-26 16:54:29 · 101 阅读 · 0 评论 -
C语言编译过程
C语言编译过程C代码编译成可执行程序经过4步:1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法,会把头文件中所以的代码粘贴复制到程序中2)编译:检查语法,将预处理后文件编译生成汇编文件 常见代码问题: 1、编辑时异常 2、编译时异常 3、运行时异常3)汇编:将汇编文件生成目标文件(二进制文件机器语言)4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去。64位和32位系统区别 寄存器是CPU内部原创 2021-01-25 21:07:48 · 217 阅读 · 0 评论