C和C++中<<是什么意思,有什么区别?

http://tieba.baidu.com/f?kz=458974408
代码见这里,这是NOIP 2007复赛提高组第4题 树网的核
题目可以看BAIDU上的
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f733699cc7150881c55f93130a1d5a33abeb3a7a4359929f272557b21501b1b561222a0126a09bbece1395f08f5452f34560375dd51a0fd31badce5b25c322954d98de0e90b9e74299b9a4a7c82256dd240e6df0fa9c2a0603bb65e76040f4d7ea5f635907cb9c2712ff4e775ec5651fa202a4a064615bdcad9f4b4cb27b8d2146&p=882a9f06829c1ffc57edc56553&user=baidu
(地址请复制到地址栏上,太长了...)
我想请问
其中的const int inf=(1<<29);
FOR(k,st,ed) min <?= d[u][p[k]];
ans>?=min;
是什么意思?是什么用法?尤其是那个<<,>?=
非常感谢!

新:这段代码好象是C的,是标准答案,好多答案都是1<<29之类的,请问这里何必要这样?数字好象超出范围了...

<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出流。

区别如下:

1、应用场合不同:

C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性;

正是因为有大规模的程序需要去处理,C++就应运而生了。C++是由C发展而来的,与C语言兼容。C++既可用于面向过程的结构化程序设计,也可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。

2、输入/输出函数不同:

C语言:inta=1;doubled=3.1415926;printf("%d\n",a);

printf("a=%d\n",a);printf("b=%6.3f, b=%6.2f, b=%.3f\n",b,b,b);scanf("%d",&a);//取地址,输入a的值,%d和%f称为格式说明符,表示以此格式输出对应表达式的值,\n表示换行。

%6.3f中的6表示占六列,表示输出对应浮点表达式值时只输出三位小数。

C++:int a=5;float b;cout << "a="<cin >>b;

cout必须要和”<<“一起使用,cin必须要和”>>“一起使用。

得C++中的输入输出流是很强大的,不像C里面还要指定格式,endl表示换行。

3、字符串不同:

C语言,chara[20]="hangzhou";char*p="hangzhou";C++:strings1="abcd";strings2="helloworld";strings3=s1+s2;s1=s2;

c++比c更方便许多。

C语言中所有的头文件都带后缀 .h(比如stdio.h)C++中有系统提供的头文件不带后缀 .h,用户自己编制的头文件可以有后缀 .h。

structStudent//声明了一个名为Student的结构体类型:

{intnum;charname[20];charsex;};

Studentstud1,stud2;//定义了两个结构体变量,默认情况下为public类型。

C++中的类将数据和操作封装在一起,并且指定了访问权限。如果不指定public,也不指定private,则系统就默认为私有的,这一点和C语言中的结构体是不一样的。

其实总的来说,C语言和c++,他们除了表现在使用场合不同,还有更多的是语法的不同,C语言更加注重过程,c++比C语言更高一级。

扩展资料:

从语言特性角度上来看,C++是C的超集。

在(C++)-C的这部分语言特性中有很多会降低执行效率。一个例子是dynamic_cast,执行一个dynamic_cast要消耗100-300个CPUcycles,因为机器要跳到一段特别的snippet(一小段程序)去检查typeinheritance。

除了语言特性,通常比较语言也会比较它们的标准数据库。

例如C++中std::sort函数肯定比C语言中的qsort快(因为templatefunction的优点),但是C++中的iostream系列又比C的printf系列慢几乎3倍。

但是由于C++标准库功能比C语言大得多,许多时候可以用较少的开发时间就在C++中实现相同的算法。

另外,不同编译器对语言的执行效率影响也很大。

参考资料:百度百科-C语言

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-01
"<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出流的... "正解

<<是左移位运算符,每移一位相当于*2,当然比乘法快的,在C中总是要选择最快的。

>?= 没有看出来,我想这段代码不是标准c++的,如果真是这样的话a>?=b的意思就应该是a=a>b?a:b的一种简略形式,使用这种表达应该能够得到优化的,会更快一点的。

当然没有超出范围了,在32位机里int是32位的,29位是不会超出范围的,这样做就是因为习惯了这种写法了吧,因为在变量的时候<<比乘法要快的,所以习惯了,常量也这样写了本回答被提问者采纳
第2个回答  推荐于2017-09-03

    C中:

    <<可作为左移算符 (向左移一位,右边自动补0)

    10001011 << 1=

    00010110 = 22

    相当于二进制的每个数都变成当前值的两倍,结果就是变成当前值的两倍,速度比乘法快。

    n * 2 == (n << 1)

    C++中:

    <<单用可作为左移算符

    cout << 可作为输出使用,相当于prinf

第3个回答  2008-07-29
<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出流的...
第4个回答  2008-08-05
即可以做位运算也可以做输入输出流,
本例中1用32位的2进制表示为00...31个0...1,<<表示所有的数字向左移29位,溢出的抛去,补入的用0补全,即001000...29个0...,化为十进制也就是2^29。

C和C++中<<是什么意思,有什么区别?
<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出流。区别如下:1、应用场合不同:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性;正是因为有...

<<在C语言或C++中什么意思啊。
<<最基本的是左移运算符,即x << y,x的二进制位向左移动y位,后面用0补充。然后各种类可能会重载这个运算符,最常见的就是输出流,比如cout << endl;。如果你喜欢也可以重载它。至于要用它来做什么就看你的喜好了。

C++或者C语言中的<?=是什么
::是作用域操作符,表示你引用的变量限定在该作用域内。->是箭头操作符,设计它的目的是为了简化输入,以及增强程序的可读性的 ->的功能相当于解引用操作符*和成员调用操作符.的组合体 例如:class C { static int a;} 访问a就可以使用C::a来访问,表明这个变量a具有类C的作用域。它在该类内...

c语言中什么是<<?
<<在c++中有两种用途。1.用于C++的I\/O流的输入和输出中的输出,也就是用在cout中,它是一个提取运算符,表示把一个东西输出到标准输出设备比如显示器,如:cout<<"哈哈,哈哈!",此时就会在屏幕上输出:哈哈,哈哈!和输入流中的cin>>相对应。<<运算符是可以重载的。2.它作为逻辑运算中的左移...

C++这个<<符号有什么意义 用法?
<<在c++中有两种用途。1.用于C++的I\/O流的输入和输出中的输出,也就是用在cout中,它是一个提取运算符,表示把一个东西输出到标准输出设备比如显示器,如:cout<<"哈哈,哈哈!",此时就会在屏幕上输出:哈哈,哈哈!和输入流中的cin>>相对应。<<运算符是可以重载的。2.它作为逻辑运算中的左移...

c语言 "<<"是什么意思?
也就是C++自带的类库中,<<往往被定义成流的操作符,指把数据流往一个对象上导入。STL有一个全局变量就是cout,他代表默认的输出设备,如果你把数据网cout上导入,一般情况下就会输出到屏幕上。同样的,全局变量cin代表默认的输入设备,如果将数据从cin导出,那么就相当于等待用户从键盘输入数据。

c语言中符号<<是什么意思
符号<<在C语言中代表了左移运算符。<<用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃该高位。

C++中的<<符号是什么意思
左移 右移运算符 用于二进制的位移运算 比如,K的值为1,它的二进制为00000001 如果执行K<<=1;它的二进制就变成了00000010(左移了一位,超出的丢弃,不足的补0)K的值就变成了2了。

c++中的“<<”“>>”表示什么?
两个大于号为向右移位,同理,两个小于号为二进制向左移位。(即乘以多少或除以多少)例如:int main(){ int a = 16;cout<<(a<<4)<<endl;cout<<(a>>4)<<endl;\/\/但是a的值并没有改变 a >>= 1;\/\/此时a的值改变了 cout<<a<<endl;cin>>a;return 0;} 输入的结果分别为256,1;...

C++中<<=什么意思
C\/C++中有多个赋值运算符:=、+=、-=、*=、\/=、%=、>>=、<<=。除了=之外,其他的可以描述成为op=(op是操作符的编写)。a op= b相当于a=a op b,如a+=b,就相当于a=a+b。a<<=b相当于a=a<<b。<<是左移,如果不知道看看位运算的章节。

相似回答