C#和C++语言使用方面的区别
本人觉得C#是世界上最优美的语言,也可以说是一门傻瓜语言,入门成本低,上手快得到许多人的青睐,但是C#并没有在行业内得到大家的首肯,反倒是C/C++人才比较紧俏;
本人在学习过程中将C#和C++语言使用方面的一些区别列举一下,方便理解学习和掌握这两门语言;如有错误欢迎纠正:
1、函数返回值类型:
C#里返回值基本上可以使任何类型,C++则不行,C++的函数返回值类型必须是除了函数和数组类型之外的其他任何类型。
2、switch(参数类型):
C#参数类型可以是任何类型,C++则必须是整形。
3、数组:
以定义一个int类型的4行4列的二维数组arr为例:
C#定义数组格式是: int[][] arr = new int[4][4];
C++定义数组的格式是:int arr[4][4];
4、定义一个对象;
C++:两种用法
- ClassA objA;objA.FieldA=valueA;//对象法
- ClassA * objA=new ClassA();objA->FieldA=valueA;//指针法
C#: ClassA objA=new ClassA();objA.FieldA=valueA;
5、函数参数类型为数组时:
C++:当参数类型为数组时,函数默认当成指针类型来处理,在函数体里改变数组里的值,函数外面也跟着改变;
C# :当参数类型为数组时,函数默认当成引用类型来处理,在函数体里改变数组里的值,函数外面也跟着改变;
6、函数参数类型为对象时:
C++:当参数类型为对象时,函数在传参时进行对象的复制,在函数体里改变数组里的值,函数外面不会跟着改变;
C# :当参数类型为对象时,函数默认当成引用类型来处理,在函数体里改变数组里的值,函数外面也跟着改变;
7、局部变量和全局变量的名称可不可以相同;
C++中是可以相同的,且局部变量会覆盖全局变量的值;C#中全局变量和局部变量的名称不可以相同;
8、C++中当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动对其初始化;而在C#中无论是局部变量还是全局变量系统都会对其初始化;
9、关于路径的写法:
C#:绝对路径:D:\\GisMap\\text2.txt;相对路径:GisMap\\text2.txt,表示exe同级目录下的Gismap目录下的text2.txt文件;..\\GisMap\\text2.txt表示exe所在目录下上一级目录下的Gismap目录下的text2.txt;
C++:绝对路径:D:\\GisMap\\text2.txt;相对路径:.\GisMap\\text2.txt,表示VC源码同级目录下的Gismap目录下的text2.txt文件;..\\GisMap\\text2.txt表示VC源码所在目录下上一级目录下的Gismap目录下的text2.txt;
10:待补充...
C#和C++语言使用方面的区别的更多相关文章
- c语言exit和return区别,在fork和vfork中使用
转自c语言exit和return区别,在fork和vfork中使用 exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: ...
- TDD 与 BDD 仅仅是语言描述上的区别么?
当然不是了,通过这个问题,我顺便跟大家聊聊 ATDD,TDD,BDD3者的区别,方便大家有一个清晰的认识和了解. ATDD: Acceptance Test Driven Development(验收 ...
- C语言与java的区别
相同的地方: 1.语法类似:由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似 2.编程的熟练程度就是对语言程序库的掌握程度: 从某种程度上来说,编程语言都是由语法和相应的程序 ...
- c语言NULL和0区别及NULL详解
先看下面一段代码输出什么: #include<stdo.h> int main() { int *p=NULL; printf("%s",p); } 输出<n ...
- c语言define和typedef区别和使用
define完全可以理解替换,typedef代表别名.听着差不多的意思,那2者区别在哪? 先来个简单例子查看基本使用. //define和typedef区别 #define DB double //替 ...
- 【C语言】C语言static和extern区别
目录: [static] [extern] 1.static · 定义一个内部函数/变量. · 声明一个内部函数/变量. 2.extern · 定义一个外部函数/变量. · 声明一个外部函数/变量. ...
- lr参数与C语言函数参数的区别
C变量不能再lr函数中使用: c变量必须定义在lr函数之前: LR参数可以在LR函数中直接当做字符串使用. LR参数是lr自己封装的一个钟对象, LR参数的表达方式:{ParamName}
- C语言--“.”与“->”有什么区别?
这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过. 下面说说我对它们的理解. 一般情况下用“.”,只需要声明一个结构体.格式是,结构体类型名+结构体名.然后用结构 ...
- python与其他语言的区别
C 和 Python.Java.C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处 ...
随机推荐
- 第十章 Secret & Configmap(下)
10.4 ConfigMap Secret可以为Pod提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如一些配置信息,则可以用ConfigMap. configMap的使用方式与Secre ...
- 如何混编c++
1. 如何混编c++ 用 Xcode4 创建一个 工程,如果在任意一个文件AAA.h的头部加入 #include<string> using namespace std; 编译运行, ...
- CDH5.10.0 离线安装(共3节点) 转
1.安装方式 CDH的离线部署安装,即Parcel包(推荐) 2.角色规划 三个节点对应的角色: 3.基本环境配置(在每个节点上都要配置) (1)关闭防火墙 #/etc/init.d/iptables ...
- 如何实现session共享
http://www.cnblogs.com/xiehuiqi220/p/3592300.html 首先我们应该明白,为什么要实现共享,如果你的网站是存放在一个机器上,那么是不存在这个问题的,因为会话 ...
- 深入浅出 Java Concurrency (7): 锁机制 part 2 AQS
在理解J.U.C原理以及锁机制之前,我们来介绍J.U.C框架最核心也是最复杂的一个基础类:java.util.concurrent.locks.AbstractQueuedSynchronizer ...
- Django创建一个简单的blog
1. 使用django-admin.py 创建mysite项目 sunny@sunny-ThinkPad-T450:~/PycharmProjects$ django-admin.py startpr ...
- Linux实战教学笔记43:squid代理与缓存实践(二)
第6章 squid代理模式案例 6.1 squid传统正向代理生产使用案例 6.1.1 squid传统正向代理两种方案 (1)普通代理服务器 作为代理服务器,这是SQUID的最基本功能:通过在squi ...
- UISprite
[UISprite] UISprite用于引用一个UIAtlas中的sprite. 此脚本最强大的功能是Sprite Type,主要指定在需拉伸图片时的行为,它有以下几种值: 1)Simple:普通拉 ...
- Apache Hive (四)Hive的连接3种连接方式
转自:https://www.cnblogs.com/qingyunzong/p/8715925.html 一.CLI连接 进入到 bin 目录下,直接输入命令: [hadoop@hadoop3 ~] ...
- 【POJ1509】Glass Beads 【后缀自动机】
题意 给出一个字符串,求它的最小表示法. 分析 这个题当然可以用最小表示法做啦!但是我是为了学后缀自动机鸭! 我们把这个字符串长度乘二,然后建SAM,然后在SAM上每次跑最小的那个字母,找出长度为n的 ...