变量初探

这学期数据库课程设计老师要求用C#写,而C#以前完全没有学过,所以自己只好找视频,找教程自己慢慢琢磨了,然而碰到最基本的一个知识就是变量类型问题。这自然是很基础的问题,而基础的问题往往是最容易迷糊的,自行补充一下。

这是变量间一张非常好的区分图,在数据类型方面,C#可谓基本继承了Java的方法,难怪第一眼看上去和Java那么相像。

很多人都直接将成员变量理解为全局变量,而且“全部”相较“局部”,对比度一下就出来了,也更好理解。所谓全局,它就是如上图所说,在类体中都可以使用的变量。以是否添加"static"关键字为分界,又分为静态变量(加"static")和实例变量(不加"static")两种,下面讲讲这个加不加static的区别。

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

上面这段话是引用过来的,我们其实可以通过下面这个小例子来对比一下:

估计大家已经看出来了,实例变量中我们必须创立一个Program对象,然后再从改对象中调用变量a,而在静态变量中,我们则可以直接调用。

而局部变量的话,理解起来非常简单,其作用域就是在作者自行定义的区域,一般即用即写即可。

题外话:这两天去了一趟合肥见同学,大家到一起都是很快乐的,但谈话间已经更多流露出对于未来的种种 不确定和些许的惶恐,我想对于我们20岁的人来说,一无所有又无法很快改善的日子会持续相当长一段时间。这会让我们心情常常不好,但不管如何,日子总是要继续的,生活中的大多数问题无非都是选择,选择过怎样的生活就意味着要有多大的付出,自己大学两年虽不颓废,但感觉成果甚微,还是不够投入所致,伟大实在是熬出来的。以码农之精神,铸我人生之道义!

时间: 2024-11-09 06:14:13

变量初探的相关文章

pthread的条件变量初探

本期研究一下Pthreads的条件变量.从网上找到了一个学习笔记,请看"cnblogs-blueclue's tech blog-POSIX线程库条件变量的使用--Pthreads线程库实例笔记4". 在windows上测试了一下该代码,稍作改动, 粘贴如下: 其中有几点需要注意: 延时函数是Sleep(),在头文件<windows.h>中.该函数用于延时某一线程的执行: 轮询次数设置为while循环的条件,在信号发送和接受函数中,轮询次数应当保持一致: #include 

前端面试合集

VUE 1.什么是 vue 生命周期 2.vue生命周期的作用是什么 3.第一次页面加载会触发哪几个钩子 4.简述每个周期具体适合哪些场景 5.created和mounted的区别 6.vue获取数据在哪个周期函数 7.请详细说下你对vue生命周期的理解? vue路由面试题 mvvm 框架是什么?vue-router 是什么?它有哪些组件 active-class 是哪个组件的属性?怎么定义 vue-router 的动态路由? 怎么获取传过来的值vue-router 有哪几种导航钩子?6.$ro

转战JS(1) 初探与变量类型、运算符、常用函数与转换

转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不是那么简单的.很多的细节部分以前都没有注意到,现在把学习的知识点记录下来,做为学习笔记,好时不时看看.如果有什么错误,还请各位看官多多包涵.多多指正. JavaScript是一门轻量型的面向Web编程的脚本言语言,常被简称为:JS.广泛应用于PC和各种移动设备中,常和HTML.CSS一起组成网页页面

iOS动态性 运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)

借助前辈的力量综合一下资料. OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动态修改的.本文旨在对runtime的部分特性小试牛刀,更多更全的方法可以参考系统API文件<objc/runtime.h>,demo例子可以参见CSDN的runtime高级编程系列文章. 我们出发吧! 先看一个非常平常的Father类: #import <Fou

程序基址与变量地址偏移初探

1.这个程序是我对程序基地址和偏移量的一个测试程序,先上代码,代码运行的主要任务是打印各种变量和函数的地址 1 #include<stdlib.h> 2 #include<stdio.h> 3 #include<windows.h> 4 5 int number; 6 int mmpe; 7 int qq; 8 int qo = 100; 9 10 11 int add(int a, int b) 12 { 13 printf("%p\n", &am

初探x64参数变量及栈空间布局

文章作者:Crack_Qs[4st][PDG] 编译模式:Debug 测试平台:Winodws 7 x64 编译环境:Microsoft Visual Studio Ultimate 2013 (12.0.30723.00) Update 3 关于x64论坛已有其他兄弟分析,我整理下自己的记录.非干货科普文,不喜勿喷. 如果本文中有遗漏部分请参考以下帖子,如果发现错误请反馈给我,万分感谢. x64传参规则研究 http://bbs.chinapyg.com/thread-74565-1-1.ht

Python初探第一篇-变量与基本数据类型

变量 Python中的变量和c语言中有所区别,Python是动态类型的语言,因此不需要预先声明变量的类型,在赋值的那一刻变量的类型和值就一起初始化.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 并且Python中的赋值语句是建立对象的引用值,而不是对象,就如同指针,而不是数据储存的区域. test_list=[1,2,3,4] new_list=test_list #不是test_list的副本,只是test_list的引用 new_list.append(5) print(tes

初探审计-extract变量覆盖

目录 Ox1 源码 Ox2 函数注解 01 extract()-详 02 file_get_contents()-略 03 trim()-略 Ox3 payload Ox4 我的理解与分析 01 一句话概括 02 错误类型归纳 Ox5 fix方案 Ox6 Ref Ox1 源码 <?php $flag='xxx'; extract($_GET); if(isset($shiyan)) { $content=trim(file_get_contents($flag)); if($shiyan==$c

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分