C语言
NeilZhy
天道酬勤,还有一年
展开
-
C语言中整型浮点型在计算机中的存储
第一次写博客,遣词造句有点菜,算是一次简单梳理,慢慢学习人家的博客风格,随着学习的深入再做修改。 本次学习的是C语言在VS下的编译调试,对于初学者两说,首先说一下如何监控变量,以及监控变量在内存中的存储与表示。 1. 如何监控变量 首先从最基本的程序说起,先看一段代码, #includeint main(){ int i; for (i = 0; i <= 5;原创 2016-11-06 10:50:47 · 1947 阅读 · 0 评论 -
C语言-三子棋游戏
C语言中用写头文件的方式写了一个三子棋游戏1.测试函数text.c#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#include#include"chess.h"void menu(){printf("***********************\n");printf(原创 2016-12-07 23:38:46 · 923 阅读 · 0 评论 -
main函数参数,在VS中向命令行添加参数的方法
问题描述使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。例如:输入test.exe -a 1 2 执行1+2输出3问题分析上面的逻辑思维很简单,但是问题在于如何在VS中向main函数传递参数,即如何使用命令行参数,以及具体怎原创 2016-12-20 10:27:51 · 5727 阅读 · 0 评论 -
三字母词和转义字符
1. 三字母词在C语言中有一种三字母词的说法,trigraph sequences,目前为止有九种三字母词,如下??= # ??) ] ??! | ??( [原创 2017-02-07 17:44:36 · 1470 阅读 · 0 评论 -
C语言volatile关键字详解
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo转载 2017-02-11 17:24:20 · 1225 阅读 · 0 评论 -
操作符和表达式
一. 操作符1. 算术操作符+ - * / %除了%之外其余的几个操作符既可以用于计算整型也可以用于计算浮点型数据,%只能计算整型数据,得到的结果是余数2. 移位操作符> 右移位操作符>>右移时,从左边移入新位有两种方式。一种方案是逻辑移位,左边移入的数由0填齐;另一种是算术移位,左边移入的数由原先该值得符号位决定,符号位为1则移入的为均为1原创 2017-02-13 16:41:59 · 896 阅读 · 0 评论 -
动态内存分配
动态内存分配1. malloc和free这两个函数的原型如下void *malloc(size_t size);void free(void *pointer)这两个函数都存在stdlib.h中,用于冬天内存开辟注意:每次使用malloc动态开辟内存的时候,都要用一个指针接受他的返回值如果malloc开辟内存失败了,就会返回一个NULL,所以每次检查是否开辟成原创 2017-02-27 16:40:39 · 1093 阅读 · 0 评论 -
杂记4
0. switch switch()这个括号里面的数据必须是整型值我是一名在校大二学生,下面二维码是我们小团队的微信公共号,会经常分享一些编程相关的知识,欢迎大家订阅原创 2017-03-01 16:05:23 · 393 阅读 · 0 评论 -
栈帧详解
一. 理解栈帧栈帧是什么,我们基本的理解是栈帧是栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。通俗来说栈帧就时C语言函数在调用的过程中的调用原理,就是当我们执行一个函数操作的时候,它的内部是如何实现的呢。二 .关于栈帧的背景知识1. 寄存器第一个寄存器ebp,基址寄存器,也叫做栈底寄存器。第二个寄存器esp,是栈顶寄存器。第三个寄存原创 2017-03-16 09:38:32 · 7762 阅读 · 8 评论 -
C语言-扫雷游戏
头文件#ifndef __MINE_H__#define __MINE_H__#define LINE 10#define LIST 10#define ROWS 6#define COWS 6int game(char UserBoard[LINE+2][LIST+2], char PlayerBoard[LINE][LIST]);void PrintBoard(char原创 2016-12-18 20:02:23 · 1139 阅读 · 0 评论 -
缓冲区和数组的输入输出问题
最近编写程序的时候一直被数据的输入输出所困扰,由此写篇博文总结一下最近遇到的问题和解决方法,错误之处望指正。 1.数组使用的一些语法注意事项 (1)数组的定义 一维数组:类型名 数组名 [常量表达式] 常量表达式中可以包括常量和符号常量,如int a[3+5]合法,int [a]不合法,即C语言不允许对数组的大原创 2016-11-09 08:31:31 · 1881 阅读 · 1 评论 -
C语言中打印‘%’
C语言中打印‘%’不能直接printf("%"),这里的'%'有特殊含义的,要想打印的话,需要输入printf("%%"),两个'%'才可以将它打印出来。C语言中的其他的特殊字符,以后再慢慢做整理。原创 2016-11-29 07:32:13 · 2025 阅读 · 0 评论 -
宏函数
一 .宏的理解1. #define 机制包括了⼀个规定,允许把参数替换到⽂本中,宏只是实现一个简单的文本替换功能。2. 宏的定义#definename( parament-list ) stuff其中neme是宏名,一般大写;( parament-list )是参数列表,注意该参数列表的左括号一定要和name紧邻着,不然会出现错误;stuff和右括号之间有一个空原创 2016-12-10 11:41:47 · 1554 阅读 · 0 评论 -
左旋字符
问题描述: 实现一个函数,可以左旋字符串中的k个字符。AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAA该问题有三种方法,现做一一分析法一:通过移动字符实现左旋#define _CRT_SECURE_NO_WARNINGS 1#include#includechar *leftstring(char *str, int num,int le原创 2016-12-11 11:13:03 · 1166 阅读 · 0 评论 -
C语言中浮点型在计算机中的存储
一 . 浮点型的存储 在十进制中我们都学习过科学计数法,比如31.4可以用科学计数法表示就是3.14*10^1。浮点型同样是采取科学计数法进行表示的。在计算机中,以二进制数存储,如1011.10用科学计数法的方式可以写成1.01110*2^3,因为浮点型还有负数,所以在计算机中表示时还需要加上一个符号位,这样我们就可以总结出一般的浮点型数据的表示形式:(-1)^S*M*2^E。原创 2016-12-04 16:23:13 · 1737 阅读 · 0 评论 -
C语言中整型在计算机中的存储
一 . 整型的表示 1.字面值后面加上L(l)表示long长整型 2.字面值后面加上U(u)表示usigned整型值 3.十进制123 ... 4.八进制,以0开头,如0123,0754 ... 5.十六进制,以0x开头,如0xF32 ...二 .整型的分类和表示范围 char型,前一篇文章已经说过,在此不再原创 2016-12-04 11:23:24 · 1802 阅读 · 0 评论 -
C语言中字符型在计算机中的存储
一. 字符型的分类和表示范围 char:是有符号还是无符号数视编译器而定,一般为有符号数,下文把它全部当成有符号数进行讨论 表示范围:32位和64位机器上均是一个字节,所以是八个bit位,最高位为符号位之后,后七位是数据位,所以它的取值范围是-128---127(-2^7---2^7-1) signed char :有符号数,原创 2016-12-04 10:27:35 · 5412 阅读 · 1 评论 -
结构和联合--结构体内存和位段内存开辟规则
一. 结构的基本知识聚合数据类型能够存储多个数据,C语言提供了两种类型的聚合数据类型,数组和结构。数组是相同的数据,结构是不同类型的数据聚合。结构也是一些值得集合,这些值成为它的成员,每个结构都有它的名字,他们是通过名字来访问的。1. 结构声明在结构声明时,必须列出它包含的所有成员,这个列表包括每个成员的类型和名字。struct tag {member-list}var原创 2017-02-27 13:55:18 · 1522 阅读 · 2 评论