
编程语言学习
文章平均质量分 78
dxtianlei
这个作者很懒,什么都没留下…
展开
-
C语言的初始和学习
在大学里学过C语言这门课程。虽然当时只是粗略的学习了一下这门课程,但是它的学习过程却给我留下了很深的印象。 在这门语言的学习中,我们可以一边学习一边实践。这种学习方式和其它的传统学科的学习是有很大的区别的。在学习C语言中,并不是单纯的学习理论与知识的记忆,更重要的是对语句的认识和理解。当我将一个个的C语言语句连接使用起来,实现所需要的功能时,心中的自我认可和自豪感是传统学科学习所没有的,也是...原创 2018-07-17 22:43:35 · 156 阅读 · 0 评论 -
Java数组
1. 基本概念数组是指一组相关数据类型的变量集合,并且这些变量按照一定的顺序排列。由数组的定义我们就能够得出数组是引用数据类型,所以数组的内容是放在堆空间上的。那么我们在创建一个数组时就要在堆上开辟空间,我们来看看数组的创建。在介绍数组的创建之前,我们先来区分一下引用类型变量和基本类型变量。Java中,不是基本数据类型的变量就是引用数据类型。它们最大的区别就是:基本数据类型的值是存在栈上,...原创 2019-02-26 18:39:21 · 213 阅读 · 0 评论 -
Java多线程--创建线程
1.什么是线程?我们知道一份代码就是一个程序,当代码运行起来后就是一个进程。进程中可以完成一些我们想要它完成的任务,那么每一个任务就是一个线程。例如我们常用的浏览器,浏览器打开就是开启了一个进程。接着我们可以在浏览器中打开网页窗口,那么一个窗口实际上就是一个线程。当然这只是一个很简单的例子,实际上浏览器除了网页窗口外还要很多线程。线程基于进程,各自独立。线程共享数据,这使线程之间的通讯非常...原创 2019-02-20 21:50:58 · 179 阅读 · 0 评论 -
Java多线程——线程操作(方法)
Java多线程中我们有一些常用的操作线程的方法,如start(),sleep(),join(),yield(),wait(),notify()和interrupt()等方法。就是这些方法我们才能启动线程使线程完成我们想要完成的任务。我写过一篇创建线程的博客,其中就介绍了线程的三种状态:就绪状态,运行状态和阻塞状态。而以上一些方法的调用就是线程状态变化的原因之一。1.有关线程名称的方法我们首...原创 2019-02-22 17:29:03 · 445 阅读 · 0 评论 -
Java的数据类型
Java语言是一门跨平台的语言,可以做到“一份代码,到处运行”。但是在前面学习C语言时,我们知道相同的数据类型在不同的平台上是有所区别的。而Java能够做到跨平台是因为JVM的存在,所以Java中的数据类型在所有平台都是统一的。那么Java的数据类型又是怎样的呢?1.byte型默认值:0存储大小:1个字节对应的包装类:java.lang.Byte数据范围:-128~127(-2...原创 2019-02-21 21:12:47 · 231 阅读 · 0 评论 -
C语言实现扫雷
要用C语言实现一个扫雷小游戏,扫雷中有一个棋盘和若干个地雷。而棋盘上要有初始状态,要是还要在棋盘上设置地雷的话就要求棋盘上一个位置能同时存在两种状态或信息。这是很难做到的,所以我们要有一个棋盘,一个雷区。这样的话我们就定义两个数组,一个数组就是棋盘数组,一个数组就是雷区数组。扫雷游戏中有些情况下需要统计雷数,所以我们就将地雷在雷区上的表示设置为1,没有地雷的地方则设置为0。这样雷区数组就可以确...原创 2018-08-19 19:41:18 · 651 阅读 · 0 评论 -
C语言实现三子棋及优化
用C语言来实现一个三子棋,我们首先要有一个思维框架。游戏开始前首先要有一个菜单供玩家选择,选项有进入和退出两种选项。当然,也要考虑玩家不小心按错的情况。退出游戏则直接退出,而进入游戏结束一局游戏后应该再次让玩家进行菜单选择。这样就又回到了开始的选项,形成了死循环,跳出的途径只有选择菜单上的退出选项。以上的情况就是我们游戏的基本设定,以C语言来实现也十分简单://三字棋#inclu...原创 2018-08-19 17:42:30 · 362 阅读 · 0 评论 -
指针和数组相关的一些题目---(3)
在(2)中分析了题目3,题目4和题目5,这篇博客来分析题目6,题目7和题目8,也是最后的3道题目。题目6.//练习6int main(){ int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int *ptr1 = (int*)(&aa + 1); int *ptr2 = (int*)(*(aa + 1)); print...原创 2018-08-07 21:27:20 · 539 阅读 · 0 评论 -
指针和数组相关的一些题目---(2)
这次接着上次指针和数组相关的一些题目---(1)的题进行解析。题目3.//练习2int main(){ int a[4] = { 1, 2, 3, 4 }; int *ptr1 = (int *)(&a + 1); int *ptr2 = (int *)((int)a + 1); printf("%x,%x", ptr1[-1], *ptr2); return 0;...原创 2018-08-07 17:47:12 · 335 阅读 · 0 评论 -
指针和数组,函数的结合
上次分析了一些关于指针和数组的一些相关题目,接下来就是对指针的更深层次的应用学习。当然,应用的前提是理解,接下来我就分析一些指针的应用类型以便于更好的应用。1.指针数组:我们先来分析它的名称,“指针数组”中的“指针”只是一个形容词,“数组”才是它的词根。那么我们就知道了:“指针数组”本质上是一个数组,是一个内含元素为“指针”的“数组”。我们来举一个指针数组的例子帮助我们更好的理解:...原创 2018-08-02 17:59:54 · 1265 阅读 · 0 评论 -
字符串的空格替换
题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如输入:"We are happy.",则输出:"We%20are%20happy."。这道题的思路很简单,就是在字符串中找到空格。然后将空格转换为:'%','2'和'0'这个三个字符。当然,直接替换会由于这三个字符所占的空间大于空格所占的空间而使后面的内存被覆盖。所以我们替换完成后的字符串长度与原字符串的长度必然是不一致的。此处我...原创 2018-08-14 19:32:15 · 429 阅读 · 0 评论 -
C和C++的注释转换
我们想要将一个代码文件中的所有C风格注释全部转换成C++风格注释,那么就首先要了解C与C++注释的区别。C++风格注释:C语言风格的注释格式为://xxxxxxxxx 。它一次只能注释一行内容。C风格注释:C++风格的注释格式为:/*xxxxxxxxxx*/。从"/*"到"*/"都是它的注释范围。C和C++两种风格注释的区别:最大的区别为C++风格的注释一次只能注释一行内容...原创 2018-08-05 22:30:03 · 606 阅读 · 0 评论 -
可变参数列表解析
在C语言的函数使用过程中要先进行函数声明,声明的内容为: 1,函数的返回类型; 2,函数的名称; 3,函数的参数; 例如下面这个简单的ADD函数://普通方式的ADD函数:#include <stdio.h>int ADD(int a,int b,int c){ int sum = 0; sum = a + b; ...原创 2018-07-27 23:26:39 · 199 阅读 · 2 评论 -
指针和数组相关的一些题目---(1)
C语言学的指针是一个非常难的知识点,当它和数组结合起来是更是难上加难。所以这里有一些关于指针和数组相关的题目来帮我们更好的理解指针。题目1.#include <stdio.h>int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1...原创 2018-07-29 11:39:51 · 644 阅读 · 1 评论 -
函数的调用过程(栈帧)
函数是我们C语言中经常接触到的一个内容。我们的编程和代码都会有函数。那么函数的调用有是怎样的一个过程呢?这个过程在内存中又是如何来实现呢?这些问题的答案就是函数的调用,这个调用的过程中要为函数开辟栈空间,这块空间就是函数栈帧。我在学习了函数的调用和栈帧之后,深感这一知识的重要和理解的困难,所以写了这篇关于函数栈帧的博客。其中有理解的不清楚或不对的地方也请大家指正。以下是我这次理解函数栈帧时...原创 2018-07-25 21:19:34 · 1251 阅读 · 0 评论 -
Java继承--父类私有属性和私有方法的继承
Java继承java中继承是一个重要的特性,使用继承可以大大提升开发的效率。子类继承父类的所有属性和方法,我个人的理解:子类实际上就是在父类基础上进行封装而得到的一个新类。所以子类应该是继承了父类所以的属性和方法,包括父类的私有属性和私有方法。但是在我周围的一些小伙伴和一些网上科普,却因为子类的实例化对象无法直接调用父类的私有属性和私有方法,认为子类只能继承父类的非私有属性和非私有方法。所以我们...原创 2019-08-12 14:33:17 · 18281 阅读 · 20 评论