学习C#中的运算符
2008-02-27 21:55
127 查看
在数学运算符中,有一个一元运算符“+”和“-”,例子说明是A=+B,说明是将B的值赋于A,A=-B说明是将B乘以-1的值赋于A,其它语言一般都会省略前面的+号,难道在C#中不能省略?写下代码测试结果:
static void Main()
{
int A,B,C;
B=1;
A=B;
C=+B;
Console.WriteLine("The A is:{0},The C is:{1}",A,C);
}
结果是:The A is:1,The C is:1
可以看到要不要+号都是一样的了。
如果用+号连接的不是数值型的会怎么样呢?教程上指出只能对字符和字符串用+号,而其它的变量类型不能使用。
下面的代码是用来测试字符型变量的+号使用情况,预想C值是字符型的'3',D什是数值型的3。
using System;
class Test
{
static void Main()
{
char A,B,C;
int D;
A='1';
B='2';
D=A+B;
C=A+B;
Console.WriteLine("The A is:{0},The B is:{1},The C is:{2},The D is:{3}",A,B,C,D);
}
}
编译是在C=A+B这行报错,说不能隐式转换INT型到CHAR型,可见两个字符型相加的结果是整数型。将有关C的行去掉,再运行,结果是The A is:1,The B is:2,The D is:99。D的值怎么会是99?这是个疑问!
找到了D值为99的原因了,字符'1'保存的值是49,'2'是50,两个相加当然是99了,原来保存的是整数,输出为字符的话就按ASCII码来显示了!
PS:字符用的是单引号,而字符串用的是双引号,差点搞错了!
关于++的运算,写了这个例子:
的运算,写了这个例子:
static void Main()
{
int A,B;
A=2;
B=2*A++;
Console.WriteLine("The A,B is:{0},{1}",A,B);
}
结果是:The A,B is:3,4。 这个是意料中的,因为B是在A没有自加1前完成乘2运算的。再改动下:
static void Main()
{
int A;
A=2;
A=2*A++;
Console.WriteLine("The A is:{0}",A);
}
结果是:The A is:4。
这个结果我觉得有些奇怪了,按理A在完成乘2运算后,再完成加1的运算呀,结果应该是5,如果说会先将运算前的A的值保存起来,也是2+1=3呀,这个4只是2*2的结果。又是个疑问!
static void Main()
{
int A,B,C;
B=1;
A=B;
C=+B;
Console.WriteLine("The A is:{0},The C is:{1}",A,C);
}
结果是:The A is:1,The C is:1
可以看到要不要+号都是一样的了。
如果用+号连接的不是数值型的会怎么样呢?教程上指出只能对字符和字符串用+号,而其它的变量类型不能使用。
下面的代码是用来测试字符型变量的+号使用情况,预想C值是字符型的'3',D什是数值型的3。
using System;
class Test
{
static void Main()
{
char A,B,C;
int D;
A='1';
B='2';
D=A+B;
C=A+B;
Console.WriteLine("The A is:{0},The B is:{1},The C is:{2},The D is:{3}",A,B,C,D);
}
}
编译是在C=A+B这行报错,说不能隐式转换INT型到CHAR型,可见两个字符型相加的结果是整数型。将有关C的行去掉,再运行,结果是The A is:1,The B is:2,The D is:99。D的值怎么会是99?这是个疑问!
找到了D值为99的原因了,字符'1'保存的值是49,'2'是50,两个相加当然是99了,原来保存的是整数,输出为字符的话就按ASCII码来显示了!
PS:字符用的是单引号,而字符串用的是双引号,差点搞错了!
关于++的运算,写了这个例子:
的运算,写了这个例子:
static void Main()
{
int A,B;
A=2;
B=2*A++;
Console.WriteLine("The A,B is:{0},{1}",A,B);
}
结果是:The A,B is:3,4。 这个是意料中的,因为B是在A没有自加1前完成乘2运算的。再改动下:
static void Main()
{
int A;
A=2;
A=2*A++;
Console.WriteLine("The A is:{0}",A);
}
结果是:The A is:4。
这个结果我觉得有些奇怪了,按理A在完成乘2运算后,再完成加1的运算呀,结果应该是5,如果说会先将运算前的A的值保存起来,也是2+1=3呀,这个4只是2*2的结果。又是个疑问!
相关文章推荐
- c# 学习总结 之 运算符
- c#学习之双冒泡运算符
- C#学习之语句、表达式和运算符
- C#学习2——数组、运算符与类型转换
- 学习C#之旅(C#语言基础,运算符)
- C#语言学习之旅(5)--运算符和类型强制转换
- c#入门学习(1) -- c#中的变量,运算符和程序结构
- (原创)c#学习笔记03--变量和表达式04--表达式01--数学运算符
- (原创)c#学习笔记04--流程控制01--布尔逻辑03--运算符优先级
- C#学习基本概念(3004)---&、&& 与运算符
- C#学习之路,学习笔记 第三章 运算符和表达式(运算符、优先级、类型转换)
- C#学习之路,学习笔记 2.5 +运算符 与 变量的格式化输出
- 学习C#之变量和运算符
- C#源码学习之---运算符的重载
- c#入门学习(1) -- c#中的变量,运算符和程序结构
- (原创)c#学习笔记03--变量和表达式04--表达式03--运算符的优先级
- C#基础学习——运算符
- 学习笔记——C#中特殊的运算符
- 轻松学习C#的运算符
- 学习C#第二天之运算符