![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
KeepLiang
windows客户端、Qt
展开
-
C语言笔记1--字符
写几个关于字符的知识点作为我的博客起点 1.#include<stdio.h>#include<stdlib.h>void main(){ char ch='a'; wchar_t wch='我';//宽字符的定义,占2字节 printf("%d,%d,%d\n",sizeof(ch),sizeof('a'),sizeof(wch));...原创 2018-08-18 15:00:22 · 124 阅读 · 0 评论 -
C语言笔记15--二级指针
二级指针储存一级指针的地址,二级指针可以修改一级指针指向的内容,两者就像是上下级的关系。指针的有着多种变化,在数组、函数中都有着巨大的作用。 二级指针最大的特点就是有两个**,定义一个二级指针:int **p; 1.二级指针改变变量的值#include<stdio.h>#include<stdlib.h>void main(){ int a=10; ...原创 2018-09-16 18:20:42 · 283 阅读 · 0 评论 -
C语言笔记13--多线程
多线程是并发执行的,可以提高程序的运算速度,但也不是无限的提高。多线程在处理大量数据中会体现出非常大的优越性,所以今天来谈谈C中的多线程。 1.多线程的简单用法: 同时创建多个窗口#include<stdio.h>#include<stdlib.h>#include<process.h>//进程的头文件#include<windows.h&g...原创 2018-09-11 00:02:40 · 266 阅读 · 2 评论 -
C语言笔记18--C语言面向对象编程
C语言是一门面向过程的编程语言,里面没有类的说法,没有类的继承、封装、多态。Cpp是有类的概念的,Cpp本身就来源C语言,Cpp的类就是一个经过高度封装的C语言结构体。在学习Cpp之前,了解C语言的设计模式非常重要,今天就用C语言结构体进行简单的继承、封装、多态。1.封装面向对象编程,每个对象都有自己的封装的方法(函数),在C语言中,结构体内是不允许定义函数的,但我们可以定义一个函数指针,...原创 2018-10-01 11:47:05 · 454 阅读 · 1 评论 -
C语言笔记19--找出第n大的数
这是一道面试的题目,题目大意是:找出数组中第n大的数,例如:输入1,则返回最大的值。有一些极端情况是,例如找出第二大的数,如果数组全都是同一个数,即没有第二大的数。这题目我采用了冒泡法,因为每一次冒泡,都可以找出剩下数中的最大值,每次找出的最大值与数组中最大值比较,相等即说明都是最大值,不等即说明是第i大的值,当i与n相等时,即说明找到第n大的值#define _CRT_SECURE_N...原创 2018-10-02 15:09:47 · 2042 阅读 · 0 评论 -
C语言笔记16--关键词const
关键词const限定一个变量不允许被改变,也就是改变用户对变量的权限。const修饰时,代表这个变量是一个常量,变量被修饰后,不能再进行自增、自减等。1.用const定义一个常量#include<stdio.h>#include<stdlib.h>void main(){ const int a=10;//只能在定义时赋值 //a++;不能自增 //a=20...原创 2018-09-21 20:13:33 · 154 阅读 · 0 评论 -
C语言笔记19--main函数的参数
main函数有两个参数,一般的写法为int main(int argc,char *argv[])或者int(int argc,char **argv)。第一个参数是说明main函数有多少个参数,这个值至少为1,因为在执行exe文件时,文件名会作为main函数的一个参数。char *argv[]是一个指针数组,用来存放参数的,都是char类型。1.在VS2013键入下面代码#includ...原创 2018-10-06 16:37:03 · 289 阅读 · 0 评论 -
C语言笔记--利用二维数组输出杨辉三角形
杨辉三角形又称帕斯卡三角形,其余的话就不多说,先看下面的三角形: 1 1 1 1 2 1 1 ...原创 2018-10-30 17:28:45 · 20154 阅读 · 3 评论 -
C语言笔记13--河内之塔
河内之塔是个经典的数学问题,题目大意为:有A、B、C三座塔,在A塔上有64个盘子,盘子的大小不一,大的在下面,小的在上面。要把这64个盘子移动到C塔,每次只允许移动1个,并且要保持小盘子在大盘子的上方,要求打印出移动的步骤。 分析: 先看只有1个盘子:A–>C; 2个盘子:A–>B,A–>C,B–>C; 3个盘子:A–>C,A–>B,C–>B,A–...原创 2018-09-09 16:17:00 · 374 阅读 · 0 评论 -
C语言笔记11--利用递归逆向输出数字
输入一个数字,逆向输出。可以通过循环,也可以通过递归,我用的是递归。 分析: 输入的数与10取模,取出最后一位,增加一个变量保存结果,取出的位存在结果中,每调用一次就和10相乘使其向前移位。 例如: 输入123, 123%10取出3,再将123/10=12; 12%10取出2,再12/10=1; 最后取出1。#include<stdio.h>#include<...原创 2018-09-05 20:06:02 · 3992 阅读 · 0 评论 -
C语言笔记2--三目运算符
三目运算符语法为:a1>a2?a1:a2;含义是:如果a1>a2成立,则表达式的值为a1,否则表达式的值为a2。 1.三目运算符简单使用:#include<stdio.h>#include<stdlib.h>void main(){ int a=100,b=90; int c=a>b?a:b; printf("%d\n"...原创 2018-08-19 17:43:27 · 860 阅读 · 0 评论 -
C语言笔记5--位运算
位运算有位与、位或、位异或、位取反,位左移、位右移首先看下位与 1、位与#include<stdio.h>#include<stdlib.h>void main(){ unsigned char a=12;//二进制表示为:1100 unsigned char b=10;//二进制表示为:1010 unsigned char c=a&am...原创 2018-08-22 22:08:07 · 174 阅读 · 0 评论 -
C语言笔记6--趣味算法01
1.题目:打印出如下图案(菱形) 打印的效果如下: 分析:菱形打印可以分为上下两部分,上半部分4行,下半部分3行。然后分别找出空格、’*’与行的关系。#include<stdio.h>#include<stdlib.h>void main(){ int i,j,k; for(i=0;i<4;i++)//上4行 { ...原创 2018-08-28 11:06:44 · 190 阅读 · 0 评论 -
C语言笔记3--逗号运算符
逗号运算符将多个表达式连接起来,每一条表达式都执行,整个表达式的值为最后的表达式的值。 逗号运算符的优先级是最低的,比赋值运算符还低。 1.首先看下简单用法#include<stdio.h>#include<stdlib.h>void main(){ int a=(1,2,3); printf("a=%d\n",a); system("...原创 2018-08-21 12:02:44 · 292 阅读 · 0 评论 -
C语言笔记9--趣味算法04
1.题目:输入3个数a,b,c,按大小顺序输出 分析:这个排序非常多的解法,只用三目运算符也能简便求出,这次我采用指针进行解答#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void swap(int *p1, int *p2){ int temp; tem...原创 2018-08-31 11:02:07 · 142 阅读 · 0 评论 -
C语言笔记4--*的作用
C语言的输入输出涵盖了非常巨大的知识面,这里结合输入输出写一下*的作用。 1.printf中作为控制宽度输出#define _CRT_SECURE_NO_WARNINGS//安全问题#include<stdio.h>#include<stdlib.h>void main(){ int a=1234; int b=10; printf("...原创 2018-08-21 18:22:53 · 766 阅读 · 0 评论 -
C语言笔记7--趣味算法02
1.题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制。 分析:后一个数是前面一个数乘10+a,可以利用递归调用求出每个值,然后通过一个外循环累加每个值。#define _CRT_SECURE_NO_WARNINGS//解决scanf的安全问题#include<stdio....原创 2018-08-29 10:30:28 · 154 阅读 · 0 评论 -
C语言笔记8--趣味算法03
1.题目:对10个数进行排序 分析:利用循环将每一个数和后一个数进行比较,然后交换位置。#include<stdio.h>#include<stdlib.h>void main(){ int temp; int a[10] = { 12, 45, 78, 2, 44, 36, 95, 102, 405, 302 }; for (int...原创 2018-08-30 09:34:11 · 254 阅读 · 0 评论 -
C语言笔记12--利用栈输出一个数的二进制
栈的特性是”先进后出”,先进去的会压在栈底,最后再被调用。求一个数的二进制时,与2取模后,从下往上取出0和1。这符合栈的特性,可以创建一个数组来储存0和1。 分析:先判断输入的是整数还是负数,负数在内存中是以补码形式储存,所以要另外进行处理。负数补码:最高位为符号位,除了符号位外取反+1。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h&...原创 2018-09-07 21:51:16 · 540 阅读 · 0 评论 -
C语言笔记10--二分法查找
二分法查找适合用在数据量大的方面查找,并且数据是要排序好的,每次和中值比较淘汰掉一半,直到找到需要的值退出。 下面笔者实现在0-1023中查找数据。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void main(){ int a[1024];//储存数据 i...原创 2018-09-02 23:41:22 · 357 阅读 · 0 评论 -
C语言笔记--四皇后
四皇后是八皇后的衍生版本,其原理都是一样的。八皇后说的是在8×8的国际棋盘上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法?八皇后一共有92种解法。而四皇后是在一个4×4的棋盘上摆放4个皇后。分析:1.皇后是每行放置一个,所以每行是不会发生冲突的2.判断位置是否安全依赖于该位置的列、副对角线、主对角线3.如果遍历所有列数都找不到合...原创 2018-11-17 09:38:20 · 6063 阅读 · 0 评论