自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cloproad的博客

发光的不一定是金子,也可能是珍珠

  • 博客(32)
  • 收藏
  • 关注

原创 C++ strcpy,strncpy,memcpy的区别

strcpy char *strcpy(char *s1, const char *s2); 从s2中拷贝字符到s1中,遇到'\0'终止('\0'也会拷贝),如果s1的长度不够,则会内存溢出 strncpy char *strncpy(char *s1, const char *s2, size_t n); 从s2中拷贝n个字符到s1中,不会拷贝'\0'之后的字符('\0'不会拷贝),如果拷贝的长度不足n,自动补充'\0',如果s1的长度小于n,则会内存溢出 memcpy void *

2020-11-10 12:59:45 396

原创 C++中处理类型

1、类型别名类型别名是一个名字,它是某种类型的同义词,使用类型别名可以使得复杂类型变得简单明了,易于理解和使用。有两种方法可以定义类型别名:(1)、关键字 typedeftypedef double wages;//wages是double的同义词typedef wages base, *p;//base是double的同义词,p是double*的同义词(2)、C++11...

2019-01-13 18:01:58 232

原创 C++指针和引用的区分

指针和引用是C++复合类型中最常见的两种,下面介绍一下他们的区分1、引用类型引用用来指向一个对象,它本身不是一个对象,使用 & 声明,声明时必须要初始化,一经初始化,其值不能被改变。需要注意的是:引用实际上是指向的对象的一个别名,声明过后绑定了这个对象,对引用的操作实际上就是对指向的对象的操作。#include "stdafx.h"#include <iostream>us...

2018-05-05 16:58:46 375

原创 C++的算术类型

1、算术类型算术类型分为两类:整形(包括字符型和布尔类型)和浮点型,下面是类型介绍注意:(1)、除去bool类型和扩展的字符型外,其他整型可以划分为有符号的(signed)和无符号的(unsigned)两种,带符号的可以表示正数、负数和0,无符号数只能表示大于等于0的值;(2)、通过在类型前面加上 unsigned 就可以表示相应的无符号数,如 unsigned int,char类型比较特殊,有c...

2018-04-23 22:06:40 2775

原创 C++的常用术语

1、缓冲区(buffer)一个存储区域,用于保存数据。IO 设施通常将输入(输出)数据保存在一个缓冲区中,可以显示的刷新缓冲区。默认情况下,读cin 会刷新 cout,程序非正常终止时也会刷新 cout。2、cerr一个 ostream 对象,关联到标准错误,通常写到与标准输出相同的设备。默认情况下是不缓冲的。3、clog  一个 ostream 对象,默认缓冲,用于报告程序的执行信息,存到一个日...

2018-04-20 22:23:26 1906

原创 C++中控制流

语句一般是顺序执行的,控制流比较常见的是循环语句和 if 语句,循环语句用来重复执行一段代码,if 语句按条件执行相应的语句。1.while 语句用法:一般用于不知道循环次数的循环语句。下面给出示例:#include "stdafx.h"#include<iostream>using namespace std;//引入命名空间int main(){ int m_iSum ...

2018-04-18 22:44:36 714

原创 初识C++

1、一个简单的C++程序每个C++程序都包含一个或多个函数,其中一个必须命名为 main,操作系统通过调用 main 来运行 C++程序,下面是一个非常简单的 main 函数,这个 main 函数什么也不干,只是返回给操作系统一个值:int main(){ return 0;}2、初始输入输出C++并未定义任何输入输出(IO)语句,取而代之,包含了一个全面的标准库来提供 IO 机制和...

2018-04-15 20:53:43 334

原创 C#中数组的排序

Array 类是一个抽象类,是所有数组的基类。用方括号表示数组会创建一个派生自 Array 类的新类,这个类可以使用 Array 类定义的方法和属性。下面说一下数组的排序。 Array 有一个静态方法给数组元素排序,该种元素类型必须实现 Icompare 接口。而简单类型(如 int,string 类型,他们已经实现了该接口,可以直接使用 sort 方法进行排序)。下面给出示例:pub

2018-02-26 17:20:59 16072

原创 C#中自定义字符串格式

一、输出字符串的时候可以按照格式输出,数字的常用格式如下表所示:   下面给出示例:int a = 23;// 使用 String 类型的 Format 方法可以按照格式输出,并制定小数点之后的位数string result = string.Format("{0:f3}",a); // result = "23.000"string result1 = string.F

2018-01-28 20:45:43 3241

原创 C#中委托(下)

一、匿名方法在使用委托的过程中不必定义仅由委托使用的方法,可以使用匿名方法。声明:类似于方法的声明,不过参数列表前只有一个delegate关键字,没有其他修饰符、返回值类型和方法名。例如:delegate (int a){ }下面给出示例:// 声明了一个有两个 string类型的参数的委托,使用匿名方法替代了方法名实例化委托Action a = delegate (strin

2018-01-26 19:53:54 203

原创 C#中委托(中)

一、Action 与Func 除了使用自定义的委托之外,还可以使用 Action 与Func 委托,Action 定义了一个无返回值,参数是T类型的委托,非泛型Action表示无参数无返回值。Func表示有返回值的委托。使用时,返回值的类型在最后声明。下面给出示例:public class TestDele{ // 声明了有一个无参数无返回值的委托引用 public Actio

2018-01-24 19:19:12 1853

原创 C#中委托(上)

委托

2018-01-23 13:51:10 253

原创 C#中自定义类型转换

类型转换

2018-01-19 18:55:58 4193

原创 C#中自定义索引器

C#

2018-01-17 11:19:23 4270

原创 C#中运算符重载

C#

2018-01-10 20:41:04 3587

原创 C#中抽象类和接口

一、抽象类:类是一个具有相同特征和行为的抽象,而抽象类(class 前加上 abstract)没有指出行为的具体细节,而由他的子类去实现相应的行为。注意:一个非密封类(密封类使用 sealed 修饰)可以派生子类,子类可以是抽象类或非抽象类。下面给出示例:public abstract class BB{ public int a; public void GetNum()

2018-01-07 20:56:01 10582 1

原创 C#中泛型(下)

上一节介绍了泛型类和泛型方法,下面着重介绍泛型接口。接口:表示纯粹抽象的行为,不能有构造函数和字段,成员是隐式公有的(不能使用修饰符),接口名一般以大写字母 I 开头。注意:虽然接口不能实例化,但可以声明接口类型的变量并使用实现接口的非抽象类或结构体实例化(抽象类可以使用非抽象子类实例化)。泛型接口:在接口名后面加上 声明,也可以在后面添加约束。1、方法的协变与抗变协变:方法

2018-01-07 20:06:25 211

原创 C#中泛型(中)

上一节介绍了泛型的声明和优点,下面着重介绍在类和方法中使用泛型。一、泛型类1、default 泛型可以作为方法的返回值,但是如果没有给泛型添加约束,则泛型可以是值类型或者是引用类型。那么方法的默认返回值就无法确定。而 default 关键字就可以用来解决这个问题。如 default(T),当T是值类型时,为默认值0,而当T是引用类型时,值是默认值 null。下面给出泛型类的声明:

2018-01-06 17:59:10 571

原创 C#中泛型(上)

泛型

2018-01-05 21:05:06 222

原创 C#中方法重载

在方法的使用过程中,重载,重写和隐藏是常用到的。下面着重介绍方法的这些使用。1、重载重载是方法名不变,参数列表(参数类型或个数)不同的方法体现。注意:返回值可以相同也可以不同。当参数个数相同而参数类型不同的时候,可以考虑使用泛型,提高代码的复用性。下面给出示例:public class Func{ // 1、显示给出默认的构造函数,这点与结构体不同,结构体的默认构造不能

2018-01-02 20:51:24 8547

原创 C#中对象的相等性

下面介绍

2018-01-01 20:52:41 885

原创 C#中基本类型转换

下面介绍C#中的类型转换。

2017-12-30 20:44:07 1882

原创 C#中运算符的优先级

在运算符的使用过程中,免不了要去梳理运算符的优先级,防止计算出错。下面给出运算符的优先级排序表格:常用运算符的介绍和使用:点击打开链接对于需要二元运算符(需要两个操作数)来说,几乎所有的运算符都是左关联的,如:x + y + z  相当于 ( x + y ) + z。注意:(1)、赋值运算符是右关联的。(2)、要先考虑运算符的优先级,再考虑他们的关联性。int

2017-12-29 16:31:32 1075

原创 C#中运算符的介绍和使用

下面将介绍C#中的

2017-12-28 16:08:53 1650

原创 C#中可空类型

可空类型:在值类型后面加上?,就可以将 null  赋值给值类型。声明方式:datatype?    如,int? a = null;值类型与引用类型的一个重要区别是:引用类型可以为空,值类型不能。而某些特殊情况(如把C#中数字映射到数据库类型时,数据库的数字可以为空),此时对于大量的数据使用引用类型会增加GC(垃圾回收器)的工作,影响性能。因为只需要在值类型的基础上加上一个 null 值,所

2017-12-27 15:47:13 1239 1

原创 C#中部分数组ArraySegment<T>

结构体ArraySegment表示数组的一段,如果需要使用不同的方式去处理一个大型数组的不同部分,一个有效的方法是使用部分数组来代替创建多个数组。首先来看一下构造:他是一个结构体(这里给出经常用到的部分),在 System 命名空间下,包括两个自定义构造方法,三个只读属性。// 泛型结构体 ArraySegmentpublic struct ArraySegment{ // 构造方法

2017-12-26 15:48:37 10426 2

原创 C#中变量和常量

编写 程序离不开变量,下面将介绍:变量的声明、变量的初始化、变量的作用域、常量。一、变量的声明1、数据类型和变量名 : datatype  identifier  如:  int  a ;注意:C#区分大小写,即 a 和 A 是两个不同的变量,可以在一行声明相同类型的多个变量,不能在一行指定不同类型的变量。// 可以在一行声明相同类型的多个变量,而不同类型需要多行int x

2017-12-25 15:19:11 1192

原创 C#中结构体与类的区分

在类的使用过程中,既不需要很多方法,也不需要从类中继承,为了提升性能,可以使用结构体来替代类。与类不同的是,结构体用struct 修饰;结构体中的实例字段不能自定义默认值,而类可以,编译器会隐式的给出结构体和类的默认构造函数,但是结构体的默认构造不能显示给出,不然编译器会报错,当类有自定义的构造函数时,默认构造会被隐藏,要想使用默认构造,必须显示给出;结构体的自定义构造函数必须初始化所有的实例

2017-12-23 15:46:35 6882

原创 C#中只读成员

只读成员包括只读字段和只读属性。如果不希望在初始化后修改数据成员,就可以把他们变成只读成员。1、只读字段介绍:声明时使用 readonly修饰,放在类型前,与 static 可以更换修饰顺序,只能在构造函数中分配值。区分:实例字段,静态字段,只读实例字段,只读静态字段,常量public class MyClass{ // 实例字段,可以在类的外部改变他的值 publi

2017-12-22 17:23:04 3497

原创 C#中静态构造函数

使用静态构造函数的一个原因是:在第一次使用类之前,用静态构造函数来初始化类(当然也包括结构体,这里用类做阐述)中一些静态字段或属性。比如对字段或属性进行一系列的操作进行初始化,而不希望每次实例化类的时候改变他,用静态构造函数比较方便。public class MyClass{ static MyClass() { }}注意:静态构造函数没有访问修饰符,不能带任何参数,一个类只能有一

2017-12-22 16:29:37 4052

原创 C#中复制数组

因为数组是引用类型,所以将一个数组变量赋值给另一个数组变量后,这两个引用会指向同一个数组对象,因此对一个数组进行改变会影响到另一个数组的结构。而复制数组会创建一个数组的副本(浅表副本)。两种方式:1、实例方法:a.Clone();    2、静态方法:Array.Copy(...);1、 数组的元素是值类型对复制数组或原数组的修改不会影响到另一个数组,他们除了值一样,其他互不相干。如下

2017-12-21 15:28:53 13099

原创 C#中命名参数和可选参数

调用方法时,变量名不需要添加到调用中。比如有如下的方法用于移动矩形并在移动之后设置他的宽和高: public void MoveAndResize(int x,int y,int width,int height)有两种调用方式:1.MoveAndResize(10,20,30,40); 2.MoveAndResize(x: 10,y: 20,width: 30,height: 4

2017-12-20 17:01:37 4887

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除