草庐IT

C++学习-const

定义常量const与#define的区别:A.const常量具有类型,编译器可以进行安全检查,#define没有类型,只是简单替换字符串B.const只能定义整数或枚举的常量const修饰变量必须初始化不可修改指针与constconst位于*左侧(constint*a):const修饰的是指针所指变量const位于*右侧(int*consta):const修饰的是指针,该指针的值不可改变A.该变量不可通过const指针修改B.const变量必须使用const指针获取函数与const函数返回值前加const:函数返回的const修饰的值不能被修改函数参数加const:A.传入函数的实参,不能在函

学习OpenTk,笔记一

说明,由于对图形化感兴趣,之前也从来没有大的接触,只是简单的使用GDI+绘图,比如验证码、水印等简单操作,至此想多深入了解一下。版本OpenTK4.7.4,目前封装OpenGL最好的库,包含OpenGL,OpenAL&OpenCL目前的理解:图形图像是每帧的绘制和控制,它有自己的时间轴,它是动画1、窗体是通过继承OpenTK.Windowing.Desktop.GameWindow创建,重新函数达成功能2、NativeWindowSettings类设置窗体的一些参数,比如大小、标题、位置等3、KeyboardState键盘状态类,事例中发现,举一反三在其命名空间下找到鼠标、操作杆4、Mouse

C#值传递引用传递

C#参数修饰ref修饰符:使用ref修饰符可以使参数成为一个引用类型,从而允许我们在函数中修改该参数的值。如果我们将一个变量传递给一个使用ref修饰符的参数,那么任何对该参数的修改都将影响到原始变量的值。例如:voidMyFunction(refintmyParam){myParam=myParam*2;}intmyVar=10;//必须要有初值MyFunction(refmyVar);//myVar的值现在为20out修饰符:使用out修饰符也可以使参数成为一个引用类型,但它通常用于返回多个值。与ref不同,当我们使用out修饰符时,我们必须在函数中对该参数进行初始化。例如:voidMyFu

学习OpenTk,笔记一

说明,由于对图形化感兴趣,之前也从来没有大的接触,只是简单的使用GDI+绘图,比如验证码、水印等简单操作,至此想多深入了解一下。版本OpenTK4.7.4,目前封装OpenGL最好的库,包含OpenGL,OpenAL&OpenCL目前的理解:图形图像是每帧的绘制和控制,它有自己的时间轴,它是动画1、窗体是通过继承OpenTK.Windowing.Desktop.GameWindow创建,重新函数达成功能2、NativeWindowSettings类设置窗体的一些参数,比如大小、标题、位置等3、KeyboardState键盘状态类,事例中发现,举一反三在其命名空间下找到鼠标、操作杆4、Mouse

C#值传递引用传递

C#参数修饰ref修饰符:使用ref修饰符可以使参数成为一个引用类型,从而允许我们在函数中修改该参数的值。如果我们将一个变量传递给一个使用ref修饰符的参数,那么任何对该参数的修改都将影响到原始变量的值。例如:voidMyFunction(refintmyParam){myParam=myParam*2;}intmyVar=10;//必须要有初值MyFunction(refmyVar);//myVar的值现在为20out修饰符:使用out修饰符也可以使参数成为一个引用类型,但它通常用于返回多个值。与ref不同,当我们使用out修饰符时,我们必须在函数中对该参数进行初始化。例如:voidMyFu

关于java中的static修饰的变量

 static在java中可以修饰对象属性,而由其修饰的属性可以有以下的性质:1.属性的创建时间会由在对象创建后创建变为在相关类加载时创建,即在写入属性时就已经创建。那么就可以直接使用类名加属性名进行调用(由右图可知,可以正常使用且输出)而不需要引入,但引入也是可以使用的,因为本质上依然是属性;2.属性不再是对象拥有的特征属性,而变为了共享性质的属性,即所有由此类创造的对象中static修饰的属性所包含地址是相同的,他们都指向相同的一块内存,因此修改其中一个其他对象内的都会发生相应的变化;3.由static修饰的属性是存储在内存的哪一种数据类型区域呢?由于JDK版本不同有不同的存储方法,在7以

关于java中的static修饰的变量

 static在java中可以修饰对象属性,而由其修饰的属性可以有以下的性质:1.属性的创建时间会由在对象创建后创建变为在相关类加载时创建,即在写入属性时就已经创建。那么就可以直接使用类名加属性名进行调用(由右图可知,可以正常使用且输出)而不需要引入,但引入也是可以使用的,因为本质上依然是属性;2.属性不再是对象拥有的特征属性,而变为了共享性质的属性,即所有由此类创造的对象中static修饰的属性所包含地址是相同的,他们都指向相同的一块内存,因此修改其中一个其他对象内的都会发生相应的变化;3.由static修饰的属性是存储在内存的哪一种数据类型区域呢?由于JDK版本不同有不同的存储方法,在7以

10、const和constexpr区别

首先理解常亮表达式。常量表达式是指值不会改变,并且在编译过程就能计算得到结果。const修饰的对象无法修改,constexpr对象在编译期间就确定且无法修改。constexpr变量,编译器在编译阶段验证变量是否为一个常量表达式。constexpr侧重变量初值编译阶段确定,且无法修改。如果认定变量是一个常量表达式,就把它声明称constexpr类型。两者都必须初始化。1、constconstinti=get_size();//运行时初始化constinyj=42;//编译时初始化1.1const对象仅在文件内有效如果要多个文件共享一个const对象,需要加关键字externexternconst

10、const和constexpr区别

首先理解常亮表达式。常量表达式是指值不会改变,并且在编译过程就能计算得到结果。const修饰的对象无法修改,constexpr对象在编译期间就确定且无法修改。constexpr变量,编译器在编译阶段验证变量是否为一个常量表达式。constexpr侧重变量初值编译阶段确定,且无法修改。如果认定变量是一个常量表达式,就把它声明称constexpr类型。两者都必须初始化。1、constconstinti=get_size();//运行时初始化constinyj=42;//编译时初始化1.1const对象仅在文件内有效如果要多个文件共享一个const对象,需要加关键字externexternconst

solidity 引用类型修饰符memory、calldata与storage 常量修饰符Constant与Immutable区别

在solidity语言中引用类型修饰符(引用类型为存储空间不固定的数值类型)memory、calldata与storage,它们只能修饰引用类型变量,比如字符串、数组、字节等...memory适用于方法传参、返参或在方法体内使用,使用完就会清除掉,释放内存calldata仅适用于方法传参,修饰该变量的值不能修改storage仅适用于方法体内,而且它的指针必须指向链上数据。使用完,链上数据将保存最新状态 常量修饰符constant编译前已经确定,编译后不能再修改常量的值constant它不是状态变量,所以它不储存在插槽(Slot)里面,获取该常量的方法修饰必须是Pure,而不是Viewimmut