c语言
文章平均质量分 69
追梦小蚂蚁
走一次不一样的人生。
展开
-
C语言之(检测程序错误宏)枚举
一、检测程序错误的宏1、系统自带的宏__FILE__ //所在文件 __LINE__ //所在行数2、需要自己定义的宏#define handle_error(msg) (do{perror(msg); \ exit(EXIT_FAILURE);}while(0))解释:perror:检查系统错误的宏.一旦发生了,系统错误就会产生一个错误数字(errn原创 2018-01-09 21:49:28 · 650 阅读 · 0 评论 -
参数—传值调用
1、在C语言中,所有函数参数都是“通过值”传递的。也就是说,传递给被调用函数的参数值存放在临时变量中,而不是存放在原来的变量中。2、在C语言中,被调用的函数不能直接修改主函数中变量的值,而是能修改其私有的临时副本中的值。3、传值调用的利大于弊。在被调用函数中,参数可以看作是便于初始化的局部变量。因此额外使用的变量更少。这样做可以是程序紧凑简洁。例如,下面这个power函数利用了这一性质:原创 2017-12-09 17:33:35 · 328 阅读 · 0 评论 -
scanf();为什么要用取地址符
scanf(“格式控制字符串”, 地址表列);其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。例如:&a、&b分别表示变量a和变量b的地址。这个地址就是编译系统在内存中给a、b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。 应该把变量的值和变原创 2017-12-09 17:49:59 · 10401 阅读 · 0 评论 -
C语言中的操作符
C语言中的操作符:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。 1.算术操作符:+ - * / % (取余) 1) 除了 % 操作符之外,其他的几个操作符均可以作用于整数和浮点数。 2) 对于 / 操作符,如果两个操作数都为整数,执行整数除法;而只要有浮点数执行的就是浮点数除转载 2017-12-20 10:54:56 · 277 阅读 · 0 评论 -
操作符的优先级
原创 2017-12-19 15:43:41 · 223 阅读 · 0 评论 -
用for循环和while循环写华氏温度与摄氏温度的转化
如果某个算术运算符的所有操作数均为整型,则执行整型运算。但是,如果某个算术运算符有一个浮点型操作数和一个整型操作数,则在开始运算之前整型操作数将会被转换为浮点型。例如,在表达式 fahr – 32 中,32 在运算过程中将被自动转换为浮点数再参与运算。#include main(){ int fahr; for (fahr = 0; fahr <= 300; fahr = f原创 2017-12-18 22:42:48 · 2503 阅读 · 0 评论 -
后宫选妃游戏
#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include #include #pragma comment(lib, "Winmm.lib")#define DAY_COUNT 10int main(){ int i; int count = 5; in转载 2017-12-18 21:43:12 · 3027 阅读 · 0 评论 -
一年中月份的天数
#define _CRT_SECURE_NO_WARNINGS#include #include int main(){ int month; int year; printf("请输入月份,我来判断天数:"); scanf("%d", &month); switch (month) { case 1: printf("1月有31天!\n"); break; c原创 2017-12-18 14:51:05 · 2533 阅读 · 0 评论 -
猜数字游戏
#define _CRT_SECURE_NO_WARNINGS#include#include#includevoid menu(){ printf("*****************************\n"); printf("********* 1.play ************\n"); printf("********* 0.exit ************\原创 2017-12-16 22:25:21 · 241 阅读 · 0 评论 -
C语言中strcpy、strcmp、strlen、strcat、memcpy、 memset的用法。
1、strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 举原创 2017-12-14 23:14:28 · 468 阅读 · 0 评论 -
C语言中逗号运算符和逗号表达式
C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为 表达式1,表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式 a=3*5,转载 2017-12-14 22:52:00 · 5905 阅读 · 1 评论 -
看书总结
1、全局变量和局部变量的基本概念局部变量概念 : 局部变量 就是定义在函数,代码块和函数星灿烈表中的变量,我们就称之为局部变量。作用范围 : 从定义的那一行开始 一直到 遇到大括号借宿 或者return为止特点 :相同作用域 范围不能出现同名的局部变量不同作用域范围内 出现同名的局部变量,内部的局部变量 会覆盖外部的局部变量注意 :局部变量没有固定的初始化值,如果没原创 2017-12-13 21:43:10 · 332 阅读 · 0 评论 -
for循环-基本概念
一、概念/* while(条件表达式) { 语句; .... } for (初始化表达式;条件表达式;循环后增值表达式) { 语句; ... } 条件表达式 : 和 while,do while一样,只有条件满足才会执行循环体 初始化表达式 : 在整个for循环的生命周期中,初始化表达式 只会执行一次 循环后增值表达式 : 会在每次循环体之后原创 2017-12-09 22:36:17 · 993 阅读 · 0 评论 -
C语言中函数的调用过程(栈帧)具体解析
我们知道每一次函数调用都是一个过程。这个过程我们通常称之为:函数的调用过程。这个过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存、现场保护。这块栈空间我们称之为函数栈帧。而栈帧的维护我们必须了解ebp和esp两个寄存器。在函数调用的过程中这两个寄存器存放了维护这个栈的栈底和栈顶指针。(ebp—>栈底寄存器,esp—>栈顶寄存器,eip—>程序计数器(存地址)...原创 2018-03-11 16:10:35 · 612 阅读 · 0 评论 -
自定义类型部分知识(结构体(位段)、枚举、联合)
结构体和数组的区别:1、数组:数组是相同类型的元素的集合,它的每个元素是通过下标引用或者指针间接访问来选择的。 2、结构体:结构体也是一些值的集合,这些值称为它的成员,但是一个结构体的各个成员可能具有不同的类型。 3、数组元素可以通过下标访问,这是因为数组的长度相同。在结构体中由于结构体的成员可能是不同的类型、长度不同。所以我们不能使用下标来访问,但是每个结构体的成员都有自己的名字,他们是...原创 2018-03-29 17:44:58 · 248 阅读 · 0 评论 -
C语言-基本运算
1.除法运算 / 整数除于整数,还是整数。参与运算的操作数必须是同类型。 1/2的值是0。参与运算的操作数是什么类型,得出的值就是什么类型。 10.5 + 10将右边的10提升为了double类型 自动类型提升。 int b = 10.5 + 1.7; 自动将大类型转换为了小类型,会丢失精度。 double a = (double)1 /原创 2017-12-09 14:41:49 · 24779 阅读 · 0 评论 -
c语言中的关系操作符
1、关系操作符有:> >= 前四个操作符一看便知。!操作符用于测试“不相等”,而==操作符用于测试“相等”。注意:1、这些操作符产生的结果都是一个整形值,而不是布尔值。如果两端的操作数符号操作符指定的关系,表达式的结果为1,如果不符合,表达式的结果是0。关系操作符的结果是整形值,所以它可以赋值给整形变量,但通常它们用于if或while语句中,作为测值表达式。请大家一定原创 2017-12-08 22:27:53 · 771 阅读 · 0 评论 -
打印动态红色心形
#include#include#includeHWND GetConsoleHwnd(void){#define MY_BUFSIZE 1024 HWND hwndFound; char pszNewWindowTitle[MY_BUFSIZE]; char pszOldWindowTitle[MY_BUFSIZE]; GetConsoleTitle(pszOldW转载 2017-12-18 21:57:30 · 1021 阅读 · 0 评论 -
C语言system函数
我们今天来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发出一个DOS命令 用 法: int system(char *command);system函数已经被收录在标准c库中,可以直接调用。例如:#include<stdio.h>#include<原创 2018-01-04 10:53:44 · 110060 阅读 · 15 评论 -
奔跑的机器^_^
#include<stdio.h>#include<stdlib.h>#include<windows.h>int main(){ int a, b; a = 0; while (a <=100) { system("color f5"); system("cls"); b = 1; while (原创 2018-01-03 22:32:44 · 167 阅读 · 0 评论 -
C语言之二维数组
一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。1、二维数组的定义二位数组定义的一般形式是: 类型说明符 数组名[常量表达式1][常量表达式2] 其中常量表达式1表示第一维下标的长度,常量表达式2表示第二维下标的长度。例如:int a[3][4];说明了一个三行四列的数组,数组名是a,其下标变量的类型为整型。该数组的下标变量一个有3*4=12个,即:a[0][0],a[0][1]原创 2018-01-03 14:56:23 · 2276 阅读 · 1 评论 -
C语言的四种程序结构
1、顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3。如果改变其顺序,写成:a = b; c = a; b原创 2018-01-02 12:13:59 · 35211 阅读 · 1 评论 -
C语言初学者必须掌握的关键字
其实我们小白们在写代码的时候,关键字还是用的比较多的,我主要就平常用到的关键字进行了下总结,以便于我们更全面的理解其在代码中的意图。让我们有耐心的看下去吧!!!C语言关键字的总结static关键字C语言const关键字C语言register关键字用法auto关键字inline内联函数—————————————————————————————————————————————————————原创 2018-01-02 11:28:58 · 2173 阅读 · 0 评论 -
指针和数组的关系
指针和数组的关系很多人都分不清指针和数组之间的关系,严格的来讲指针和数组之间没关系,指针是指针,数组是数组。只不过他们两个都可以通过“*”引用的方式和下标的方式来访问元素而已。 例:int a[5]={1,2,3,4,5};int *p=a;a[5]占20个字节的大小,而p只占4个字节的大小,其次p本身有自己的地址,只不过他里面存放的是数组首元素的地址。要访问3则有两种方式:a[2]或者*(a+原创 2018-01-01 09:57:48 · 398 阅读 · 0 评论 -
用C语言实现的三子棋游戏
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<time.h>#include<stdlib.h>#define ROW 3#define COL 3void init_board(char arr[ROW][COL]){ int i = 0; int j = 0; for (i = 0; i <原创 2017-12-31 23:11:14 · 313 阅读 · 0 评论 -
C语言中sizeof()和strlen()的区别
《sizeof》(一)、sizeof的基本概念sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号 内的类型名。操作数的存储大小由操作数的类型决定。(二)使用方法1、用于数据类型sizeof使用形式:sizeof(type) ,如sizeof(int)2、用于变量sizeof使用形式:sizeof(var_name)或si...原创 2017-12-31 15:48:55 · 12974 阅读 · 5 评论 -
C语言中的条件编译
条件编译的功能使得我们可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。条件编译有三种形式,下面分别介绍:第一种形式:#ifdef 标识符程序段 1#else程序段 2#endif它的功能是,如果标识符已被 #define 命令定义过则对程序段 1 进行编译;否则对程序段 2进行编译。如果没有程序段 2(它为空)原创 2017-12-27 22:42:16 · 1178 阅读 · 0 评论 -
C指针和数组
一、指针指针就是地址,指针变量是用来存放地址的变量,把谁的地址存放在指针变量中,就说此指针变量指向谁。1.一维数组一维数组名代表数组首元素的地址,因此 *a=a[0];&:取地址运算符。&a 是变量 a 的地址*:指针运算符,*p 代表指针变量p指向的对象a+i = &a[i];*(a+i) = a[i];2.二维数组可以认为二维数组由多个一维数组组成。C语言规定:数组名代表数组首元素地址a代表的原创 2017-12-25 22:40:52 · 204 阅读 · 0 评论 -
C语言字符串操作数总结大全
文章比较长希望大家可以耐心的看下去。加油!!!1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen(p) 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度原创 2017-12-24 21:17:57 · 700 阅读 · 0 评论 -
C语言关键字详情介绍
C语言一共有32个关键字,如下所述:auto :声明自动变量short :声明短整型变量或函数int: 声明整型变量或函数long :声明长整型变量或函数float:声明浮点型变量或函数double :声明双精度变量或函数char :声明字符型变量或函数struct:声明结构体变量或函数union:声明共用数据类型enum转载 2017-12-20 20:44:42 · 168 阅读 · 0 评论 -
C语言中的指针和数组
文章还是比较长的 如果你有耐心看下去我相信我们对于指针和数组理解更深刻。。 什么是指针?指针就是指针,指针在32位系统下,不管什么样的指针类型其大小都占4个byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量来访问到。什么是数组?数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,...原创 2018-03-25 13:37:15 · 205 阅读 · 0 评论