C语言与Java变量定义的区别
局部变量
在C语言中,嵌套的代码块中声明的变量名可以重名,例如:
#include<stdio.h>int main() /*主函数main*/
{int iNumber1=1; /*在第一个iNumber1定义变量*/printf("%d\n",iNumber1); /*输出变量值*/if(iNumber1>0){int iNumber1=2; /*在第二个iNumber1定义变量*/printf("%d\n",iNumber1); /*输出变量值*/if(iNumber1>0){int iNumber1=3; /*在第3个iNumber1定义变量*/printf("%d\n",iNumber1); /*输出变量值*/}printf("%d\n",iNumber1); /*输出变量值*/}printf("%d\n",iNumber1); /*输出变量值*/return 0;
}
上述程序将输出1 2 3 2 1
而在Java中,这种声明方式则是不允许的。
Java中,在一个变量的生命周期(或者叫作用域)内,不允许再次声明同名的变量。只有在不同的代码块中才可以声明同名的变量。
上述说的变量是指在函数内声明的局部变量,而局部变量是可以和全局变量(类变量)同名的。如果函数中没有声明与类变量同名的变量,那使用此变量则是直接使用的类变量。如果存在同名的变量,则需要使用this关键字来区分局部变量和类变量。
全局变量
对于同一个文件内,如果局部变量没有同名的,则两个语言都是可以直接使用此全局变量。如果存在同名的,那C语言会使用作用域最近的变量,也就是同名的话,就没办法对全局变量操作了。Java则可以通过this关键字类区分全局变量和局部变量。
C语言中,如果一个文件想使用另一个文件中的全局变量,使用extern关键字声明同名的变量即可。
/*/*/
/* 在Extern1文件中 */
/*/*/
#include<stdio.h>int main()
{extern int iExtern; /*定义外部整型变量*/printf("%d\n",iExtern); /*显示变量值*/return 0; /*程序结束*/
}/*/*/
/* 在Extern2文件中 */
/*/*/#include<stdio.h>int iExtern=100; /*定义一个整型变量,为其赋值100*/
Java中,对于全局变量(类变量),有不同的修饰符,一般来说,类变量都是使用private修饰的,对变量的访问需要通过类中定义get、set函数。并且需要通过类实例来访问,如果此变量加了static修饰,则还可以通过类名直接访问。
C语言与Java变量定义的区别相关推荐
- c语言常量和变量有什么区别?
c语言常量和变量有什么区别? c语言常量 常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面量.常量可以是任何的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量 ...
- c语言变量定义位置区别,C语言中变量定义的位置(C89和C99的区别)
C语言中变量定义的位置(C89和C99的区别) 在C++和JAVA中,按照语法,我们可以把变量定义在任何位置,所以很多人习惯了"哪里使用哪里定义"的这种做法,所以当用C语言进行编程 ...
- C语言中变量声明和变量定义的区别
本文转载至CSDN博客JeanCheng 变量声明和变量定义 变量定义:用于为变量分配存储空间,还可为变量指定初始值.程序中,变量有且仅有一个定义. 变量声明:用于向程序表明变量的类型和名字. 定义也 ...
- C语言、JAVA与JavaScript的区别
一.C语言和JavaScript的区别 1.什么是C语言 C语言是一门面向过程.抽象化的通用程序设计语言,广泛应用于底层开发.C语言能以简易的方式编译.处理低级存储器.C语言是仅产生少量的机器语言以及 ...
- 1、C语言面试笔试---变量定义和声明
文章目录 1.背景 2.变量定义和声明 1.局部变量和全局变量 2.变量的存储类别 3.例题 4.内存泄漏 1.背景 2019秋招马上开始了,今天已经是7月30号了,赶紧刷刷C语言,争取在8月中旬刷完 ...
- 变量声明与变量定义的区别
1.变量定义 1.1.第一种方式 int a 定义变量但不初始化 创建一个变量,为这个变量分配一块int数据类型所占内存空间大小的内存空间并命名 1.2.第二种方式 int a = ...
- c语言中声明外部函数需要添加的关键字,C语言中声明和定义的区别——分析extern关键词。...
一直很迷惑C语言中的声明和定义的有些实践中的用法,说迷惑实践是因为声明和定义的概念上的区别是很明确的. 定义和声明的区别(主要针对变量): 定义是要为变量分配存储空间,还可以在定义的时候为变量指定初始 ...
- java变量定义规则说法正确_下列变量命名规范说法正确的是( )。
[判断题]9.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型. [单选题]7.已知int a[]=new int[100],在下列给出的数组元素中,非法的是 [判断题]资产,是指企业过 ...
- 简述scala语言与java语联系与区别_scala语言与java的区别
scala支持关联映射,如可以用(key -> value)表示一个键值对 scala中的所有类型都是对象,包括基本数据类型 scala中的case语句用来判断接收的消息,比java中的swit ...
最新文章
- stp和vrrp的配置命令
- 函数 —— memset(给数组重新赋值,用指定字符替换数组中的部分值)
- 三级计算机网络技术考试题,2017年计算机三级网络技术考试题
- 强制html元素不随窗口缩小而换行
- JAVA面试题------------final 关键字是干什么用的?谈谈你的理解。
- Spring Boot 2.1 版本变化[翻译]
- 面向中文自然语言处理的60余类系统开源实践项目与工业探索索引
- 移动端性能优化系列—启动速度
- python基础27 -----python进程终结篇-----IO模型
- JAVA写的多线程下载程序,并具有断点续传功能
- 修改驱动器重定向显示格式
- HDOJ1020 Encoding
- 显示隐藏-display(HTML、CSS)
- cocos2d怎么设置屏幕朝向?横屏 or 竖屏设置
- adb shell /system/bin/screencap screenrecord
- 罗格斯大学电气与计算机工程专业怎么样,罗格斯大学计算机工程排行,千万得细心点听懂...
- 灰色产业链成病毒传播最大渠道 流量生意或迎来最后的疯狂
- 数据可视化——彩色通用设计之色彩搭配(制作对色盲人群友好的图形和演示)
- shiro 过滤器 Filter 修改请求url
- 计算机工具都有什么,电脑上有哪些特别好用的小工具?盘点10大PC工具,个个都精品...