内容摘自:
https://blog.csdn.net/qq_38234381/article/details/115437997?spm=1001.2014.3001.5502
https://blog.csdn.net/qq_38234381/article/details/104359385?spm=1001.2014.3001.5502
C++和C#String是否是’\0’结尾:
C++中没有规定string以’\0’结尾,但大部分编译器在实现时会为string结尾增加’\0’
C#string并不以’\0’结尾
C++同C一样,char数组最后一个必须是空字符,而C#不需要
在C++和C中,字符数组和string都可以修改,C#不能
C++中bool类型true就是非0,false就是0,它们是等同的,而C#true和非0,false和0是两个不同的类型。当我们通过输入的方式给bool赋值时应输入数字值而不是true和false。另外C中没有bool除非引入头文件
C++或者C的switch中
不加break不会跳出
C#中的switch中
如果switch的两个相连的case中都有代码,那么必须加break,否则会报错,若其中一个有代码一个没有,则可以不加,此时这两个case对应同一个代码块,两个都没有的情况无意义
相同的地方:
括号中数据的类型可以是整形、字符型、枚举类型
default可以省略
C++中的类型检查与C#不同,对于可能丢失数据的赋值C++只会警告,而不会报错,例外是int不能隐式给枚举赋值(会报错)
C++强制转换可以阔类型也可以阔后面的数据,也可以都阔(C#只能阔类型或者阔类型的同时阔后面的数据,而不能只阔数据)
C++和C#的名称空间的名字可以带点
C#中两个赋值语句要用分号隔开,不要用逗号,只要在声明时赋值才可以用,而C++和C中两种情况都可以用逗号