C/C++编程系列
主要针对windows环境下,从C语言基础到C++面向对象中遇到的各种问题,使用VS编译器实例讲解代码,从原因、经过到结果详细分析,力求让刚刚学习C系语言编程的同学也能够轻松的弄明白
aaronymhe
fighting
展开
-
单链表排序(函数指针)
问题描述:用户输入数据,构成单链表,然后对单链表进行排序,能够随意切换排序的方法(列入升序降序)。PS:要随意切换排序的方法,那么使用函数指针作为参数传入到排序函数中,那么函数指针指向的函数就可以方便的制定排序规则了。参考代码:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <malloc原创 2017-06-03 17:54:33 · 14050 阅读 · 0 评论 -
虚拟按键的判断方法
问题描述:判断CapsLock,Alt,Ctrl,Shift是否被按下参考代码:#include <stdio.h>#include <windows.h>int main(){ while (1) { short sValue = GetKeyState(VK_CAPITAL); if (sValue & 0x1)//该值低位位1,则表示Caps原创 2017-06-03 17:22:28 · 13856 阅读 · 0 评论 -
自己实现strcpy函数
问题描述:自己实现一个MyStrcpy函数,要和C语言库函数的strcpy函数完成同样的功能。问题分析: 首先我们要了解一下atoi函数它到底做了什么事情(1) 函数原型 char *strcpy(char *dest, const char *src);(2) 函数说明dest 为目标字符串指针,src 为源字符串指针,该函数把src所指的由NULL结束的字符串复制到dest 所指的数组中原创 2017-05-30 14:40:32 · 13059 阅读 · 0 评论 -
自己实现fmod函数
问题描述:自己实现一个MyFmod函数,要和C语言库函数的fmod函数完成同样的功能。问题分析: 首先我们要了解一下fmod函数它到底做了什么事情(1) 函数原型 double fmod (double x, double y);(2) 函数说明fmod() 用来对浮点数进行取模(求余)(3) 返回值 返回取模后的结果res,res的绝对值一定会小于y的绝对值根据以上的描述,我们可以来实原创 2017-05-27 09:57:59 · 16919 阅读 · 0 评论 -
自己实现atoi函数
问题描述:自己实现一个MyAtoi函数,要和C语言库函数的atoi函数完成同样的功能。问题分析: 首先我们要了解一下atoi函数它到底做了什么事情(1) 函数原型 int atoi (const char * str);(2) 函数说明atoi函数会扫描参数 str 字符串,跳过前面的空白字符(下面会解释空白字符),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’原创 2017-05-27 09:40:11 · 14995 阅读 · 0 评论 -
C语音基础-----那些年我们踩过的坑(一)
一、 宏的使用1.1 宏的展开替换#include <stdio.h>#define PING_FANG(x) x * xint main(){ //输入两个数a, b,求(a+b)的平方 int a, b; scanf_s("%d%d", &a, &b); printf("%d\n", PING_FANG(a + b)); return 0;}运行结果:原创 2017-04-20 12:02:56 · 11929 阅读 · 1 评论 -
指针的简单操作
#include<stdio.h>int main(){ int a = 4407873; printf("%d\n", a); _getch(); int *p = &a; printf("%s\n", (char*)&a); return 0;}PS: 1. 根据第一节课进制的转换,把十进制4407873转换成16进制0x434241 2.原创 2017-04-21 22:42:15 · 12014 阅读 · 0 评论 -
#define和const的区别
这个区别用从几个角度来说:角度1: 就定义常量说的话: const 定义的常数是变量 也带类型, #define 定义的只是个常数 不带类型。角度2: 就起作用的阶段而言: define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。角度3: 就起作用的方式而言: define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避原创 2017-04-22 11:57:06 · 62985 阅读 · 14 评论 -
从一个简单的例子学习For循环(适合刚刚学习C语言的同学)
请看下面的简单示例代码:#include <stdio.h>int main(){//用for循环求从1到100的和 int i, sum = 0; for (i = 1; i <= 100; i++) { sum += i; } printf("sum=%d\n", sum); return 0;}PS: for循环的执行顺序如原创 2017-04-23 14:06:03 · 25090 阅读 · 0 评论 -
基本数据类型作业
第一题:给标识符增加数据类型PS: 1. 姓名和学校名用字符数组表示,姓名不超过一般都不超过32个字符,这里之所有用32而不是30,主要是因为32是2的幂次,计算机处理速度会更快 2. 年龄之所有用unsigned char而不用char,考虑到可能有些人的年龄会超过127岁,但是应该没有人会超过255岁,1个字节完全足够了 3. 身高(单位:厘米),体重(单位:公斤),这里使用浮点型来表示更原创 2017-04-27 09:43:44 · 11430 阅读 · 0 评论 -
二维数组的动态申请空间并参数传给函数
说明: 1. 二维数组动态创建 2. 把二位数组作为参数传递给函数参考代码:#include <stdio.h>#include <stdlib.h>void func(int** pArray, int m, int n){ for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++)原创 2017-04-30 22:58:26 · 16599 阅读 · 0 评论 -
C语言中交换两个数的方法
问题描述:程序中有两个数a,b,其中a=4,b=5,现在希望交换两个数的值,使得a=5,b=4.在这里我总结了一下目前我已经掌握的C语言中交换两个数的方法,主要如下几种,下面我将分别来进行介绍。方法1: 使用一个临时变量来进行保存,这应该也是大家最容易想到的方法,话不多说,直接上代码。参考代码:#include <stdio.h>int main(){ int a = 4; int原创 2017-05-06 11:35:07 · 58317 阅读 · 2 评论 -
控制台控制光标位置
问题描述:通过控制光标位置,在控制台上打印如下面语句: 输入第十天的果子数:__ 个其中__是让用户填入的一个正整数,并且在用户输入的过程中,“个”会跟随着数字往后移动。参考代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include <conio.h>#include<windows.h>void setcursor(int x, i原创 2017-05-09 00:35:48 · 16375 阅读 · 0 评论