c语言
不可触碰的殇
纵有千古,横有八荒,前途似海,来日方长
展开
-
c语言练习题(全做对必是大佬)
一输出j的值#include<stdio.h>int main(){ unsigned char i=7; int j=0; for(;i>0;i-=3) { ++j; } printf("%d\n",j);; return 0; } 答案:j的值为173解析:i的类型是无符号的字符类型,其值的范围为0~255,j的值是for循环的次数,i的值变化为 7 4 1 254…5 2 255…6 3i的值为1时再原创 2021-03-21 18:33:00 · 682 阅读 · 0 评论 -
程序环境和预处理
文章目录翻译环境编译环境和链接预编译 编译 汇编链接运行环境预定义符号预处理指令 以#开头#define翻译环境1.当我们写代码生成test.c源文件时,电脑会经过翻译环境生成可执行的test.exe的可执行文件,继而通过运行环境开始运行2.翻译环境分为编译环境和链接编译环境和链接1.每个源文件单独经过编译器处理,生成xxxx.obj的目标文件2.所有目标文件经过链接器链接生成可执行文件,同时链接链接库预编译 编译 汇编1 编译又分为预编译,编译,汇编2 预编译的功能——文本操作,预处理指原创 2021-03-19 23:02:49 · 75 阅读 · 0 评论 -
c语言实现简易图书管理系统
思路:使用两个结构体,第一个结构体含有书籍的信息,第二个结构体含记录图书信息的数组和记录当前书籍数目总数的整数struct book{ int number; char name[50]; int price;};struct lib{ struct book data[1000]; int sz;};初始化//初始化图书系统void initsys(struct lib*p){ memset(p->data, 0, sizeof(p->data)); p原创 2021-03-11 22:02:09 · 6908 阅读 · 9 评论 -
动态内存管理——malloc,free,calloc,realloc
栈区——局部变量,函数形参堆区——动态内存分配的空间 malloc ,realloc,calloc,free静态区——全局变量,静态变量mallocvoid *malloc( size_t size );size代表所要开辟空间的字节1 如果开辟成功,返回指向开辟好的指针2 如果开辟失败,则指向空指针,NULL3 返回类型为void*,malloc函数并不知道开辟空间的类型,具体类型由使用者自己决定4 malloc函数开辟空间不会初始化,空间内为随机值以开辟空间用于建立数组为例#i原创 2021-03-11 15:40:43 · 91 阅读 · 0 评论 -
c语言实现通讯录
通讯录包括5个功能:增加信息,打印信息,删除信息,查找信息,修改信息,我们使用结构体来创建通讯录头文件如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>#define namemax 255#define sexmax 20#define telemax 30#define addrmax 50#define MA原创 2021-03-11 00:27:25 · 239 阅读 · 0 评论 -
内存操作函数
memcpyvoid *memcpy( void *dest, const void *src, size_t count );将内存进行拷贝,可以拷贝任意类型的数据,第一个参数为目的指针,第二个函数为原指针,第三个参数为所拷贝数据的字节大小#include<stdio.h>#include<string.h> int main(){ int a1[]={1,2,3,4,5,6}; int a2[20]={0}; memcpy(a2,a1,16); int i=原创 2021-03-08 18:50:36 · 74 阅读 · 0 评论 -
字符串函数和字符函数详解——strlen,strcpy,strcat,strcmp......
strlensize_t strlen( const char *string );1 字符串以 \0 作为结束标志,strlen函数返回的是 \0之前出现的字符个数2 字符串必须以 \0 结束3 返回值为 size_t ,是无符号类型strcpychar *strcpy( char *strDestination, const char *strSource );1 源字符串必须以 \0结束2 会将源字符串的 \0拷贝到源字符串3 目标空间必须足够大且是可变的书写函数模拟实现#原创 2021-03-08 14:27:59 · 340 阅读 · 1 评论 -
指针和数组题目
以64为平台为例a为数组, sizeof(a)计算的为整个数组的大小&a取出的为整个数组的地址其余情况均为首元素的地址#include<stdio.h> int main(){ int a[]={1,2,3,4}; printf("%d\n",sizeof(a)); 16 整个数组大小,单位是字节 printf("%d\n",sizeof(a+0)); 8 a+0为第一个元素的地址,地址的大小为4/8,32平台为4,64平台为8原创 2021-03-05 01:37:41 · 148 阅读 · 3 评论 -
qsort函数解析、应用及底层原理
qsort函数可以对任意类型数据排序,头文件为<stdlib.h>,其函数原型为void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );第一个元素为所要排序数据的起始数据的地址,第二个元素为数据元素个数(宽度),第三个元素为数据的字节大小,第四个为比较函数,用来进行比较对数组进行排序#include<st原创 2021-03-04 17:41:46 · 1646 阅读 · 2 评论 -
c语言——简单计算器
c语言——简单计算器——加、减、乘、除#define _crt_secure_no_warnings#include<stdio.h>void menu(){ printf("**************************\n"); printf("*******1.add 2.sub*******\n"); printf("*******3.mul 4.div*******\n"); printf("*******0.exit ******\n");原创 2021-03-04 17:00:20 · 8978 阅读 · 5 评论 -
高级指针——数组指针,函数指针,函数指针数组,指向函数指针数组的指针
字符指针#include<stdio.h> int main(){ //一般用法 char ch='a'; char *p=&ch; //p字符指针指向字符串 char *p="abcdef"; //p中存放的是字符a的地址 printf("%c\n",*p); a printf("%s",p); abcdef } 指针数组指针数组是数组,是存放指针的数组int main(){原创 2021-03-04 16:14:56 · 99 阅读 · 1 评论 -
数据在内存中的存储
数据类型详细介绍整形家族char 字符类型 signed char //有符号的字符类型 unsigned char //无符号的字符类型 short 短整型 signed short unsigned short int 整形 signed int unsigned int long 长整型 signed long原创 2021-03-02 02:33:30 · 124 阅读 · 0 评论 -
结构体知识——声明,初始化,成员访问,传参
结构体类型的声明struct stu{ char name[20]; int age; char telephone[12]; char sex[5];};int main(){ struct stu s; return 0;}此时的struct stu相当于int,可以对变量进行定义struct stu{ char name[20]; int age; char telephone[12]; char sex[5];}s;同样也可以这样定义s这个原创 2021-03-01 23:32:20 · 180 阅读 · 0 评论 -
指针运算——指针与整数,指针与指针,指针的关系运算
指针±整数#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int arr[5] = { 0 }; int *p = arr; int i = 0; for (i = 0; i < 5; i++) { *(p + i) = i;//*p++=i; 先解引用在加加 } for (i = 0; i < 5; i++) { printf("%d ", *(p + i)); }原创 2021-03-01 19:21:37 · 534 阅读 · 1 评论 -
c语言操作符详解,算术操作符,移位操作符,位操作符,复合操作符,单目操作符,逻辑操作符
算数操作符+ - * /1 .对于除法来说,操作符两侧为整数,执行整数除法,有小数舍去,而只要有浮点数则执行浮点数除法printf("%f", 5 / 2.0);此时%d改为%f,输出结果为2.5000002 %操作法两侧必须为整数移位操作符<<左移操作符>>右移操作符左移和右移移动的均为存储在内存中的二进制数的补码,整数的二进制数有原码,反码,补码,正数的原反补码相同,负数需计算左移操作符 int a=5; int b = a <<原创 2021-03-01 00:21:38 · 356 阅读 · 6 评论 -
c语言实现扫雷游戏
c语言实现扫雷游戏此次扫雷中我们以9乘以9的表格为例,后期可自动调动主要思路:建立两个11乘以11的表格,分别为布雷和排雷后的表格,其中我们以字符1表示此处有雷,字符0表示此处无雷,在布雷时我们用时间函数布置随机的10个雷(具体多少个雷可自行选择),在另一个表格中显示出所选位置周围雷的个数建立11*11的表格是因为便于统计四条边上位置周围含雷的个数用vs建立头文件game.n和两个源文件game.c和test.c(先分开讲解,在文章最后有三个文件的整体显示)在头文件中的声明有#include&原创 2021-02-28 21:27:00 · 287 阅读 · 0 评论