首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于哪种类型的A和B,简单的赋值语句A=B在C++中是合法的,但在Java语言中不合法?

在C++中,简单的赋值语句A=B是合法的,因为C++支持基本数据类型的直接赋值。而在Java语言中,简单的赋值语句A=B是不合法的,因为Java是一种强类型语言,要求变量的类型必须严格匹配。在Java中,A和B的类型必须相同或者存在类型转换关系才能进行赋值操作。如果A和B的类型不匹配,需要进行类型转换或者使用特定的方法来实现赋值操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++左值右值

下面许多博主博文中看到一些相关解释: ---- 摘自《C++ Primer》第五版 C语言中,左值可以位于赋值语句右侧,右值则不能。...int b; a = 3; b = 4; a = b; b = a; // 以下写法不合法。...= a; a+b = 4; c 语言中,通常来说有名字变量就是左值(如上面例子 a, b),而由运算操作(加减乘除,函数调用返回值等)所产生中间结果(没有名字)就是右值,如上 3 + 4,...对于基本数据类型来说(primitive types),左值右值概念 c 没有太多不同,不同地方在于自定义类型,而且这种不同比较容易让人混淆: 1) 对于基础类型,右值不可被修改(non-modifiable...对于 1),这 c 一致,2) 却是 C++ 中所独有, 因此,如果你看到 C++ 如下写法,千万不要惊讶: class cs { public: cs(int i):

2.3K30

程序员C语言C加加新手小白入门基础最容易犯17种错误,你中了几个?

C与C++最大区别:在于它们用于解决问题思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,C更多算法概念。...2、忽略了变量类型,进行了不合法运算。 main() { float a,b; printf(“%d”,a%b); } %求余运算,得到a/b整余数。...许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序可以写 1if (a=3) then … 但C语言中,“=”赋值运算符,“==”关系运算符。...1 2 int a,b; scanf(“%d%d”,a,b); 这是不合法。Scanf函数作用是:按照a、b在内存地址将a、b值存进去。“&a”指a在内存地址。...1scanf(“%7.2f”,&a); 这样做不合法,输入数据时不能规定精度。 12.switch语句中漏写break语句。 例如:根据考试成绩等级打印出百分制数段。

1K50

CC++void用法总结

voidC/C++中常见关键字,下面简单总结一下它常见用法。 本文由博主木顶思上提供,点击阅读原文即可跳转。...因此,为了避免混乱,在编写C/C++程序时,对于任何函数都必须一个不漏地指定其类型。如果函数没有返回值,一定要声明为void类型。这既是程序良好可读性需要,也是编程规范性要求。...C++言中声明一个这样函数: int function(void) { return 1; } 则进行下面的调用是不合法: function(2); 因为C++...getchar(); } 编译正确且输出1,这说明,C语言中,可以给无参数函数传送任意类型参数,但是C++编译器编译同样代码则会出错。...因此下列语句GNU编译器皆正确: pvoid++; //GNU:正确 pvoid += 1; //GNU:正确 pvoid++执行结果其增大了1。

3K10

C语言中void具体有什么作用

大家好,又见面了,我你们朋友全栈君。1.概述 许多初学者对C/C++言中void及void指针类型不甚理解,因此使用上出现了一些错误。...众所周知,如果指针p1p2类型相同,那么我们可以直接在p1p2间互相赋值;如果p1p2指向不同数据类型,则必须使用强制类型 转换运算符把赋值运算符右边指针类型转换为左边指针类型。...规则二如果函数无参数,那么应声明其参数为void C++言中声明一个这样函数: int function(void) { return 1; } 则进行下面的调用是不合法...: function(2); 因为C++,函数参数为void意思这个函数不接受任何参数。...); getchar(); } 编译正确且输出1,这说明,C语言中,可以给无参数函数传送任意类型参数,但是C++编译器编译同样代码则会出错。

1.5K20

C语言位运算详解:这些常见错误不能犯

2、忽略了变量类型,进行了不合法运算。  main() { float a,b; printf(“%d”,a%b); } %求余运算,得到a/b整余数。...整型变量ab可以进行求余运算,而实型变量则不允许进行“求余”运算。 如果你想学习C/C++可以来这个群,首先是三三零,中间八五九,最后七六六,里面有大量学习资料可以下载。  ...许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序可以写 if (a=3) then … 但C语言中,“=”赋值运算符,“==”关系运算符。...①scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间分隔符,如下面输入不合法: 3,4 输入数据时,两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。...scanf(“%7.2f”,&a); 这样做不合法,输入数据时不能规定精度。   12、switch语句中漏写break语句。  例如:根据考试成绩等级打印出百分制数段。

1.2K00

Go语言错误与异常处理机制

对于大多数函数,如果要返回错误,大致上都可以定义为如下模式,将error作为多种返回值最后一个,但这并非强制要求: func Foo(param int)(n int, err error) {...5 0 自定义error,error名称为算数不合法 通过上面的例子可以看出error类型类似于JavaException类型,不同Exception必须搭配throwcatch使用。...2 defer–延迟语句 Go语言中,可以使用关键字defer向函数注册退出调用,即主调函数退出时,defer后函数才会被调用。..., f2()) } 其结果 defer内部 2 main 1 例子3:defer语句会读取主调函数返回值,并对返回值赋值....,error名称为算数不合法 panic--recover()得到error类型 panic--recover()得到ArithmeticError类型 可见已将error示例程序转换为了Java

34030

新手最常见10个C语言错误,有人甚至全都中了!

习惯上我们符号常用名为大写,变量名用小写字母来代表,从而增加了代码可读性。 1 经常忽略变量定义变量类型,对变量进行不合法运算。...如: if (a==3) a=b; 其中,a==3进行比较,a是否3相等,a=b表示如果a3相等,把b值赋给a。因为C语言中,“=”赋值运算符,“==”关系运算符。...其中改错时候有时指出没有发现错误,这时我们应该查看上一行是否出现漏掉分号情况。 101 语句中多加分号。...如: int a,b; scanf(“%d%d”,a,b); 这是不合法。Scanf函数作用是:按照a、b在内存地址将a、b值存进去。“&a”指a在内存地址。...①scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间分隔符,如下面输入不合法: 3,4 输入数据时,两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。

1.1K20

C运用练习讲解

3、1.234e0.4不能作为C语言合法常量因为:其表示e代表是以10为底指数; C语言中整数常量指数合法,而小数指数不是C语言标准所定义合法常量范围内 4、若二维数组a有m列,则在a[i]...以下一些不合法C语言用户自定义标识符情况: 1.包含空格标识符: 标识符不能包含空格,因为空格C语言中用于分隔各个标记。...当 x=127 , y= - 9 时,执行赋值句 z=x+y 后, x 、 y z 值分别是 x=0000007FH,y=FFF7H,z=00000076H C 语言中整型数据为补码形式, int...6 c = 6 b = ++c, c++, ++a, a++; // 逗号表达式优先级,最低,这里先算b=++c, b得到++c后结果,b7 // b=++c 后边构成逗号表达式...// 表达式结束时,c++,++a,a++会给a+2,给c加1,此时c:8,a:8,b:7 b += a++ + c; // a先c加,结果为16,加上b值7,比结果为23,最后给a加1,a

7610

void及void指针含义深刻解析

综述 很多刚開始学习的人对C/C++言中void及void指针类型不甚理解,因此使用上出现了一些错误。...众所周知,假设指针p1p2类型相同,那么我们能够直接在p1p2间互相赋值;假设p1p2指向不同数据类型,则必须使用强制类型转换运算符把赋值运算符右边指针类型转换为左边指针类型。   ...[Page] 规则二假设函数无參数,那么应声明其參数为 void    C++言中声明一个这种函数: int function(void) { return1; }   则进行以下调用是不合法...: function(2);   由于 C++ ,函数參数为 void 意思这个函数不接受不论什么參数。...; }   编译正确且输出 1 ,这说明, C 语言中,能够给无參数函数传送随意类型參数,可是 C++ 编译器编译相同代码则会出错。

96410

Go语言编程设计学习Day1:helloworld 变量 常量

Go语言变量声明方式与CC++语言有明显不同。对于纯粹变量声明,Go语言引入了 Go语言变量声明方式与CC++语言有明显不同。...哪种类型,这让Go语言看起来有点像动态类型语言,尽管Go语言实际上不折不扣类型 言(静态类型语言)。...变量赋值Go语法,变量初始化变量赋值两个不同概念。...j变量语句: i, j = j, i ​ 不支持多重赋值言中,交互两个变量内容需要引入一个中间变量: t = i; i = j; j = t; 匿名变量 ​ Go这种情况可以通过结合使用多重返回匿名变量来避免定义一些不必要变量丑陋写法...常量 ​ Go语言中,常量指编译期间就已知且不可改变值。常量可以是数值类型(包括整型、浮点型复数类型)、布尔类型、字符串类型等。

47220

javalambda表达式(从小白也能看懂做起)

到目前为止, Java 传递一个代码段并不容易, 不能直接传递代码段,Java 一种面 向对象语言,所以必须构造一个对象,这个对象类需要有一个方法能包含所需代码 但是在其他语言中可以直接处理代码块...(来自Java核心技术卷1) Java8提出了lambda表达式,处理代码块 (变得更加简洁紧凑) lambda表达式语法 (参数)->表达式 (参数)->{ 语句; } 特征: 可选类型声明... Java , lambda 表达式就是闭包。 lambda 表达式可以捕获外围作用域中变量值。 Java ,要确保所捕获 明确定义,这里有一个重要限制。...另外如果在 lambda 表达式引用变量, 而这个变量可能在外部改变,这也是不合法。... lambda 表达式声明与一个局部变量同名参数或局部变量不合法

79030

golang学习笔记7:指针

不像 Java .NET,Go 语言为程序员提供了控制数据结构指针能力;但是,你不能进行指针运算。...通过给予程序员基本内存布局,Go 语言允许你控制特定集合数据结构、分配数量以及内存访问模式,这些对构建运行良好系统是非常重要:指针对于性能影响不言而喻,而如果你想要做系统编程、操作系统或者网络应用...var i1 = 5 fmt.Printf("An integer: %d, it's location in memory: %p\n", i1, &i1) 这个地址可以存储一个叫做指针特殊数据类型...Go 语言中指针保证了内存安全,更像是 Java、C# VB.NET 引用。 因此 c = *p++ Go 语言代码不合法。...如我们所见,大多数情况下 Go 语言可以使程序员轻松创建指针,并且隐藏间接引用,如:自动反向引用。对一个空指针反向引用是不合法,并且会使程序崩溃。

61840

十七个C语言新手编程时常犯错误及解决方式

C认为大写字母小写字母两个不同字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。 2、忽略了变量类型,进行了不合法运算。...许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序可以写 if (a=3) then … 但C语言中,“=”赋值运算符,“==”关系运算符。...int a,b; scanf(“%d%d”,a,b); 这是不合法。scanf函数作用是:按照a、b在内存地址将a、b值存进去。“&a”指a在内存地址。...①scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间分隔符,如下面输入不合法: 3,4 输入数据时,两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab...scanf(“%7.2f”,&a); 这样做不合法,输入数据时不能规定精度。 12.switch语句中漏写break语句。 例如:根据考试成绩等级打印出百分制数段。

1.3K40

【超全】C语言小白最容易犯17种错误,你中了几个?

2、忽略了变量类型,进行了不合法运算。 main() {   float a,b;   printf(“%d”,a%b); } %求余运算,得到a/b整余数。...许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序可以写 if (a=3) then … 但C语言中,“=”赋值运算符,“==”关系运算符。...①scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间分隔符,如下面输入不合法: 3,4 输入数据时,两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。...scanf(“%7.2f”,&a); 这样做不合法,输入数据时不能规定精度。   12.switch语句中漏写break语句。 例如:根据考试成绩等级打印出百分制数段。...x:y;   return(z); } 以上就是老九收集17个问题啦,小伙伴们以后学习中一定要多注意细节哦~ 问:以下选项合法一组C语言数值常量( )。

1.3K51

一文读懂Java泛型通配符 ?

下面译文: Java泛型通配符机制目的:让一个持有特定类型(比如A类型集合能够强制转换为持有A子类或父类型集合,这篇文章将解释这个如何做。...或者将 listA 赋值给 listB ?换言之,下面的赋值语句是否合法? listA = listB; listB = listA; 答案两个都不合法。 为什么呢?...下面就是答案: listA 你可以插入 A类实例,或者A类子类实例(比如BC)。...如果下面的语句合法: List listB = listA; 那么 listA 里面可能会被放入非B类型实例。...更具体地说是下面的这个赋值: ListA = listB; 如果这条赋值语句成立的话,那么你就可以给 listB 指向集合 listB 里面插入AC对象了。

87930

C语言编程时90%小伙伴常犯18种错误

2 忽略了变量类型,进行了不合法运算 代码如下: main(){ float a,b; printf("%d",a%b);} %求余运算,得到a/b整余数。...如在BASIC程序可以写 if (a=3) then … 但C语言中,“=”赋值运算符,“==”关系运算符。...由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。 7 输入变量时忘记加地址运算符“&” int a,b; scanf(“%d%d”,a,b); 这是不合法。...8 输入数据方式与要求不符 ①scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间分隔符,如下面输入不合法: 3,4 输入数据时,两个数据之间以一个或多个空格间隔,也可用回车键...11 输入数据时,企图规定精度 scanf(“%7.2f”,&a); 这样做不合法,输入数据时不能规定精度。

73660

十七个C语言新手编程时常犯错误及解决方式

2、忽略了变量类型,进行了不合法运算。 main() {   float a,b;   printf(“%d”,a%b); } %求余运算,得到a/b整余数。...许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序可以写 if (a=3) then … 但C语言中,“=”赋值运算符,“==”关系运算符。...int a,b; scanf(“%d%d”,a,b); 这是不合法。scanf函数作用是:按照a、b在内存地址将a、b值存进去。“&a”指a在内存地址。...①scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间分隔符,如下面输入不合法: 3,4 输入数据时,两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab...scanf(“%7.2f”,&a); 这样做不合法,输入数据时不能规定精度。 12.switch语句中漏写break语句。 例如:根据考试成绩等级打印出百分制数段。

1.1K71

javac++里new区别

由此看来,new student();该语句应该不合法吧, 至少没用吧?不对,它是合法,而且可用。譬如,如果我们仅仅为了打印而生成一个对象, 就不需要用引用变量来系住它。...Java创建对象方式C++比较类似,但是还是存在一定差异,下面欧柏泰克大家一起来看看JAVAC++创建对象方式比较吧: 1、C++创建对象方式 C++我们可以采用如下两种方式来创建对象...对于第一种方式而言,dog被存储,占用大小Dog类成员变量占用内存,此处不包括成员方法,因为成员方法存放在公共存储区以便所有该类对象都可以访问。...对于第二种方式则不同,该方式使用了指针,定义*p时开辟一个4字节空间,new Dog()时开辟一块空间,然后将该空间首地址赋值给*p,这样,通过*p就可以找到对象任何成员方法了...C++中用指针那样Java中直接进行地址++操作,这样一来就保证了内存安全,这是C++Java很大不同。

99510
领券