C语言
indomitable@I
踏着层层阶梯攀登
展开
-
【C语言】输出中的%d,%f,%o等区别
%d 整型输出%2d,将数字按宽度为2,右对齐方式输出,不够补空格%02d和%d差不多,只是不够了左边补0%x 以十六进制数形式输出整数,或输出字符串的地址%u 以十进制数输出无符号数%c 输出一个字符%s 输出一个字符串%o 以八进制输出%f 输出小数,默认保留小数点后6位%.50f 输出一个数,保留小数点50位...原创 2020-05-28 11:40:47 · 3775 阅读 · 0 评论 -
C语言:动态内存管理
为什么存在动态内存分配想申请变长数组、想申请大块内存之前的变量我们只是把它定义出,然后计算机(系统)帮我们在栈上申请空间,释放空间,这些我们都不需要管。但有时我们需要的空间大小在程序运行时才知道,而且在栈上开辟不出太大的空间,动态内存管理就是帮我们解决这些事,在堆上申请内存…举个栗子int a = 10;//在栈上开辟四个字节的大小char arr[10] = { 0 };//在栈上...原创 2020-02-07 12:14:36 · 138 阅读 · 0 评论 -
C语言:结构体内存对齐
结构体内存对齐即计算结构体的大小首先,我们需要知道为什么要内存对齐?1.平台原因:不是所有的硬件平台都能访问任意地址上的任意数据;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出异常2.性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于:为了访问未对齐的内存,处理器需要做连词给内存访问;而对球队的内存访问仅需要一次访问。内存对齐是拿空间换时间的做法两种结构体...原创 2019-12-19 23:31:55 · 92 阅读 · 0 评论 -
C语言:@ 模拟实现内存操作函数(memcpy、memset、memcmp、memmove)
memcpymemmovememsetmemcmp原创 2019-12-18 00:14:59 · 307 阅读 · 0 评论 -
C语言: @ 模拟实现字符串操作函数(strlen、strcpy、strcat、strcmp、strstr )
strlen 字符串长度长度不受限制的字符串函数原创 2019-12-06 11:48:05 · 250 阅读 · 0 评论 -
C语言:字符函数和字符串函数的使用
strlen 字符串长度长度不受限制的字符串函数strcpy 字符串拷贝strcat 字符串追加(拼接)strcmp字符串比较长度受限制的字符串函数strncpy 字符串拷贝strncat 字符串追加(拼接)strncmp 字符串比较字符串查找strstrstrtokstrlen 求字符串长度字符串以’\0’结尾,strlen求字符串的长度是返回字符串中’\0’前面出现...原创 2019-12-04 13:47:50 · 342 阅读 · 0 评论 -
C语言:判断大小端
将数据的低权值位放在低地址处,称为小端将数据的高权值位放在低地址处,称为大端从上图可以看出低权值位放在低地址处,所以是小端参考下图理解:题:设计一个程序判断当前机器的字节序(就是判断大小端)代码如下:...原创 2019-12-03 09:52:17 · 274 阅读 · 0 评论 -
C语言:3种方法实现左旋字符串
题目:实现一个函数,可以左旋字符串中的k个字符。比如:ABCD左旋一个字符得到BCDA方法一:可以定义一个temp变量临时保存第一个字符,然后从第二个元素开始,依次往前移动,最后将第一个字符放到最后就好了,要左旋多少个就把之前步骤重复多少次注意:如果左旋次数多的话,有些中间的结果会和最终结果一样,所以求出有效左旋次数会优化些代码如下:void LeftMove(char *str,...原创 2019-12-02 18:08:23 · 275 阅读 · 0 评论 -
C语言:数组笔试题解析
关于这类题,我们需要了解一下基本内容sizeof 字符串开辟空间的大小,包括’\0’strlen 字符串长度,求的是字符串的有效个数,不包括’\0’数组名一般代表首元素的地址只有两种情况,代表整个数组的地址sizeof(数组名)单独使用时&数组名具体理解如下:一维数组:...原创 2019-11-26 15:33:48 · 449 阅读 · 0 评论 -
C语言:用函数指针数组实现转移表(计算器)
函数指针数组也是数组,数组的每一个成员是函数指针(这个指针指向函数)int main(){ int x, y; int input = 1; int result = 0; //定义一个函数指针数组 int (*a[])(int x,int y) = { 0, Add, Sub, Mul, Div, Mod }; while (input) { prin...原创 2019-11-25 21:53:01 · 192 阅读 · 0 评论 -
C语言:指针
字符指针表示字符的地址 char ch = 'a';//为字符常量区的字符在栈上开辟一个字节的空间大小 char *p = &ch;//访问该变量的地址 char *str = "abcdef";//字符指针指向字符常量区这个字符串的首地址...原创 2019-11-18 20:34:52 · 88 阅读 · 0 评论 -
C语言:数组指针&指针数组
顺序不同,表示的含义也不同,数组指针是指针,指针数组是数组,记后面两个字就好啦怎么认识数组指针or指针数组?看优先级:谁优先级高,和谁先结合,就是谁举例: int *p[10];//指针数组 //[]优先级比*高,所以为数组,数组的地址放在指向数组的指针里,所以叫指针数组 int (*p)[10];//数组指针 //()优先级高,所以和里面的*结合,所以是一个指针变量,指向一个整形数...原创 2019-11-18 20:17:48 · 110 阅读 · 0 评论 -
C语言:const基本用法
const 修饰 * int a = 10; //下面const位置虽然不同,但都是修饰 *,代表指针所指向的内容不能被改 const int *p= &a;//const修饰*,*p(指针指向的内容)不能直接被修改 int const *p= &a; //*p = 30;内容改变,就会报错 p=20;//可以改指向const 修饰变量//const修饰 指针p...原创 2019-11-18 12:47:56 · 108 阅读 · 0 评论 -
C语言:数组基本知识&&冒泡排序
数组是一组相同类型元素的集合创建数组:类型 + 数组名 + [数组的大小];[]里面只能放字面常量,或宏定义的常规的常量初始化数组:(在创建数组的同时给数组的内容一些合理初始值)数组赋值:不能被整体赋值,可以通过循环的方式赋值;具体如下例子:...原创 2019-11-13 11:57:31 · 229 阅读 · 0 评论 -
C语言:求二进制中1的个数(3种方法)
题目:写一个函数返回参数二进制中 1 的个数比如: 15-> 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}介绍三种方法:方法一:取余求个数我们之前学过怎么样将十进制#include<stdio.h>#include<windows.h>#pragma...原创 2019-11-05 19:13:35 · 7902 阅读 · 3 评论 -
C语言:简单实现三子棋小游戏
三子棋游戏就是,假如有玩家A、B在一个棋盘下棋,一人一步轮换,谁先将三个相同的棋子连成一条线,谁就赢了下面具体介绍游戏的实现:game.h#ifndef _GAME_H_#define _GAME_H_#pragma warning(disable:4996)#include<stdio.h>#include<windows.h>#include<s...原创 2019-10-29 21:41:06 · 380 阅读 · 0 评论 -
C语言:简单了解函数基本知识
函数是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对于独立性。这也就是为什么要有函数的原因,试想下,如果代码都在一个代码块内,我们只需找它的一部分,那工作量是不是就很大了。有了不同的函数,方便我们理清思路,之后看或用的话也是很高效的。函数的分类:可以分为库函数和自定义函数库函数简单来说,就是已经存在的,比如 printf()函数,我们...原创 2019-10-23 14:58:54 · 217 阅读 · 0 评论 -
C语言:函数递归
000原创 2019-10-23 00:00:58 · 169 阅读 · 0 评论 -
C语言 : 编写代码模拟三次密码输入的场景
题目:编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char arr1[8] = "ab12345";...原创 2019-01-21 18:54:04 · 329 阅读 · 0 评论 -
C语言:大小写字符的转换
题目编写一个程序, 如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。代码如下:#include<stdio.h>#include<stdlib.h>int main(){ char ch=0; while (ch!=EOF) { scanf("%c", &ch); if (('a' <...原创 2019-01-22 16:32:12 · 368 阅读 · 0 评论 -
C语言:求个整数中的最大值
代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){ int arr[10] = {0};//用数组的形式来存放10个整数 int i = 0; int max = 0; for (i = 0; i < 10; i++) { sca...原创 2019-01-24 19:50:35 · 906 阅读 · 0 评论 -
C语言 : 打印100到200之间的素数
什么是素数(素数也叫质数)就是在所有比1大的整数中,除了1和它本身以外,不再有别的因数首先我们可以考虑一下怎么样把100到200之间的数打印出来(用for循环打印),很明显100,200不是素数,所以我们的循环从101开始,200结束,然后再里面再进行循环和判断#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include&...原创 2019-01-26 21:41:44 · 479 阅读 · 0 评论 -
C语言:数据类型、变量&常量 基本常识
变量1.定义变量的方法:类型+变量名->创建变量int age = 150;char ch = "w";2.变量的分类:局部变量、全局变量在代码块内部定义的变量是局部变量,在代码块外部定义的变量是全局变量,当局部变量和全局变量同名时,局部变量优先使用看代码理解一下:#include<stdio.h>int global = 2019;//全局变量int mai...原创 2019-08-05 15:47:25 · 368 阅读 · 0 评论 -
C语言:简单了解 static关键字、#define定义常量和宏
static关键字在C语言中:static是用来修饰变量和函数的修饰局部变量修饰全局变量修饰函数修饰局部变量改变了局部变量的生命周期(周期变长了),让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void test1(){ int i = 0;//局部变...原创 2019-08-05 16:26:40 · 618 阅读 · 0 评论 -
C语言:简单了解循环语句、比较break、continue的用法
同一件事我们需要完成很多次,从而引入了循环…,while循环while语法结构:while(表达式)循环语句;例如:打印0-9#include<stdio.h>int main(){ int i = 0; while (i < 10) { printf("%d ", i); i++; } return 0;}for循环语法结构for(表...原创 2019-08-06 12:52:02 · 152 阅读 · 0 评论 -
C语言:在整型有序数组中查找想要的数字------二分法(折半查找)
在整型有序数组中查找想要的数字------二分法(折半查找)找到了返回下标,找不到返回 - 1.二分查找(折半查找)优点: 比较次数少,查找速度快,平均性能好,占用系统内存较少;缺点: 要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表.在本题中首先,假设表中元素是按升序排列,将表中间位置(mid)记录的关键字与查找关键字(k)比较,如果两...原创 2019-01-20 16:43:15 · 785 阅读 · 0 评论