C++难学么?还是C好学呢?

 我来答 举报
songfeng163
推荐于2017-10-07 · TA获得超过952个赞
知道小有建树答主
回答量:229
采纳率:100%
帮助的人:320万
展开全部
c语言好学一些
c++是c的增强版,比c增加了面向对象的概念,增加很多库,学起来会复杂一些,所以会难一些,下面是一些详细的介绍:
在很大程度上,标准C++是标准C的超集.实际上,所有C程序也是C++程序,然而,两者之间有少量区别.下面简要介绍一下最重要的区别.
在C++中,民,局部变量可以在一个程序块内在任何地方声明,在C中,局部变量必须在程序块的开始部分,即在所有"操作"语句之前声明,请注意,C99标准中取消了这种限制.
在C中,按如下方式声明的函数没有对函数变元进行任何说明;
int func();
也就是说,如果没有在函数后面的括孤内指定任何变元,这在C中就意味着对函数变元未做任何声明,该函数可能有变元,也可能没有变元,然而,在C++中,这样的函数声明意味着该函数没有变元,也就是说,在C++中,下面这两个函数声明具有同样的作用:
int func();
int func(void);

在C++中,变元列表中的void是任选的.许多C++程序员使用它们是为了表明函数没有任何变元的,以便于他人理解程序.但是,从技术上说,void不是必须的.
在C++中,所有函数均必须被设计成原型,但这在C中只是一种选择.编程经验表明,在程序中也应该给函数采用原型设计方法.在C与C++之间还存在一个重要而又细微的差别,即字符常数在C中被自动作为整形来处理,但在C++中则不然.
在C中,多次声明一个全局变量虽然不可取,但不算错.在C++中,多次声明同一个全局变量会引发错误.
在C中,一个标识符可以至少31个有效的组成字符.在C++中,一个标识符的所有组成字符均是有效的.可是,从实用角度看,过长的标识符没有太大的用处,不仅不便于记忆,而且还会增加出现打字错误的可能性.
在C中,在程序内部调用main()函数的情形不常见,但这种做法是容许的,在C++中,这种做法是不容许的.
在C中,无法获得register型的地址,在C++中则可以获得这种地址.
在C中,如果类型声明语句中没有指定类型名,该类型被假定成int,这种隐式转型在C99与C++中是不允许的.

#include <iostream>
using namespace std;
为什么没有.h后缀名?

名称iostream没有扩展名.h,原因是<iostream>是标准C++所定义的新式头部文件之一,新式C++头部文件不再使用.h扩展名.
第二行告诉编译程序使用std名称空间,名称空间是最近才添加到C++中,一个名称空间建立一个声明范围,在该范围内可以放置各种程序元素.名称空间用来帮助组织大型程序的结构.这条using语句通知编译程序,程序员需要使用std名称空间,这是整个标准C++库声明所使用的名称空间.通过使用sdt名称空间,程序可以简化对标准库的访问.普通C程序仅使用C子集,不需要名称空间语句,因为C的库函数在默认的全局名称空间中是可使用的.

类与结构体的区别:类与结构体是相互关联的

结构是C的一部分,C++从C中继承了结构,在语法上,类与结构十分相似,在关系上,这两者也很接近,在C++中,结构的作用被拓宽了,进而使结构成为了类的一种替代方法.实际上,类与结构的惟一区别在于:在默认状态下,结构的所有成员均是公有的,而类的所有成员是私有的.除此之外,类与结构是等价的,也就是说,一个结构定义了一个类的类型.
C++同时包含这两个等价的关键字struct与class基于3个方面的原因.第一,加强结构的能力.在C中,结构提供了一种数据分组方法,因而让结构包含成员函数是一个小小的改进.第二,由于类与结构是相互关联的,所有现有C代码到C++的移植变得更容易.第三,由于类与结构的等价性,提供两个不同的关键字可以使类定义自由发展,为了保持C++与C的兼容性,结构定义必须始终受它的C定义的结束.
即使在有些地方可以使用结构来代替类,但尽量不要这么做,为了清楚起见,该用类的地方就用class关键字,该用C结构的地方就用struct关键字.

类与联合是相互关联的

联合也可以用来定义类.在C++中,联合包含成员函数,变量以及构造与析构函数.C++联合保留了C联合的全部特征,其中最重要的特征是所有数据元素共享内存的相同地址.与结构类似,联合的成员在默认状态下也是公有的,并且完全兼容于C.与结构一样,C++中的联合声明定义了一种特殊的类,进而意味着保持了类的封装原则.
C++的联合有几个必须遵守的使用限制.第一,联合不能继承其他任何类型的类.第二,联合不能是基类,不能包含有虚函数成员.静态变量不能是联合的成员. 联合不能使用引用成员,而且不能有任何作为成员的重载赋值运算符的对象.第三,如果一个对象包含明确的构造或析构函数,该对象不能成为联合的成员.
C++有一个叫做匿名联合的特殊联合.匿名联合没有类型名,也不声明任何变量,只是告诉编译程序它的成员变量共享一个内存地址.但是,变量本身无需要使用常规的点运算符语法即可直接引用.
上述联合的使用限制也适用于匿名联合,但下面这两个限制除外,第一,匿名联合所包含的元素只能是数据,不能包含成员函数,也不能包含私有或受保护元素;第二,全局匿名联合必须声明成静态的.
sky独爱pchy
推荐于2017-10-04 · TA获得超过3.5万个赞
知道小有建树答主
回答量:2126
采纳率:100%
帮助的人:108万
展开全部
  学习C++应该由易至难,循序渐进。以前经常有人说学习C++之前应该学习C语言。事实上那不是必须的,C++和C语言虽然有关系,但仍然是两种不同的语言。当然,在学习C++之前学习过其他编程语言是很有好处的。那会使学习C++的速度更快,毕竟很多计算机语言的概念都是相通的。而对于零基础的初学者来说,则是应该静下心来,不要急躁。要成为C++的高手,不是那么容易的,必须要花很大的努力。 你想用来做什么?如果想开发大的程序只有你一个人是不可以的,如果开发小程序自己玩玩还可以,再说现在C++还要配合其他的语言!

  学习C++应该由易至难,循序渐进。以前经常有人说学习C++之前应该学习C语言。事实上那不是必须的,C++和C语言虽然有关系,但仍然是两种不同的语言。当然,在学习C++之前学习过其他编程语言是很有好处的。那会使学习C++的速度更快,毕竟很多计算机语言的概念都是相通的。而对于零基础的初学者来说,则是应该静下心来,不要急躁。要成为C++的高手,不是那么容易的,必须要花很大的努力。
4 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
teddy_mail
2011-10-07
知道答主
回答量:14
采纳率:0%
帮助的人:4.5万
展开全部
c++是c的发展版本,其实c++是面向对象化来开发的,学好c语言学好汇编,从根本上可以大步的推进你学习别的语言,就像是在你身上装了一个加速器,还是那句古话:磨刀不误砍柴工
4 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
qinjin666666
2011-10-07
知道答主
回答量:5
采纳率:0%
帮助的人:8350
展开全部
C语言它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。而C++语言是高级程序汇编语言,只用于程序制作。至于难度嘛,C语言是基础语言当然比C++语言更容易学懂!
1 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
gouyun0922
2011-10-07 · TA获得超过151个赞
知道小有建树答主
回答量:246
采纳率:100%
帮助的人:118万
展开全部
不好讲;C是基础,C++是C的升华!
3 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式