我是在今学期才开始看C和C ,现在C学的基础还好,C 算是大概体系了解,不过对你这个问题还是挺有感触,就以一个初学者态度跟你讲讲我的感受吧!希望让有兴趣发展编程的你能快速进入这个领域。
首先,我不苟同上面哪位仁兄的说法,其实,C和C 都可以说是面向过程的语言,但C 更提供了面向对象的方法,需要说明一点,C 是倡导面向对象编程方法的,应为这是适用现代技术发展的要求,简单理解,面向对象的编程方法就是预先设置好一些常用的,实用的类库,当编程时要用到时,引用就可以了(通过对类进行实例化),就好像是预先生产出一部洗衣机,要洗衣服时候直接把衣服放进去,打开洗衣机的启动按钮就可以了,在面向对象编程中,假如我们已经有了要引用的类库(这些类也可以自己编),我们只要做“启动洗衣机按钮”这个动作就可以了,这就是面向对象编程。面向过程的编程,简单理解,就是除了一些基本的类似输入输出,数学函数之外,基本都是要全部一条龙的自己设计。
C和C 都是MS公司出的,它还有的C#就是完全面向对象的高级语言,功能非常强大,与。net平台一起构成了MS的战略。
不好意思,还是说回你感兴趣的东西吧!其实学C和c 不用太多的数学知识,它要求你无非两样东西:1.逻辑性2.兴趣,循环控制如“for,while语句”,指针,函数调用是学习C和C 的核心和重点,也是精华所在,尤其是C语言。个人建议:假如你不是要做一个C程员的话,在c学到一定基础很程度时候可以转向JAVA或C#等面向对象高级语言,他们联系ASP,ASPX和JSP等web系统开发,快速开发软件和web系统方面实用性非常强。
也建议可以先从C学起,清华大学出版社的谭浩强的《C程序设计》是一本非常好的适合没编程基础,介绍也很彻底详细的名书(我就是靠那本书的,呵呵),学习C时,不要冒进,认认真真打好基础,对你以后发展其他语言甚至领域有非常大的帮助。
1.C提供了三种主要的预处理功能,分别是__宏定义_______、___文件包含______、____条件编译____。
2.C语言中,数组元素下标下限为___0_____。
3.数组名作函数参数传递时是__数组首地址______传递。变量作函数参数时是_值_______传递,
4.一个编辑好的*.C源程序,必须经过编译、_连接_______、后才能运行。
5.在C语言中可以用__逐个引用______法和________法引用数组元素。
6.C语言的程序结构有_顺序___、_选择___、循环____三种。
7.在C中,Char类型变量值可以赋值给___int_____类型变量。
8.使指针P指向数组int a[ ]的首址,写作 __p=a______ ,*(P+1)是a[ _1__ ]的值
9.所谓指针是指_______;指针变量是用于存放___变量地址___的变量;字符串的指针是指__字符串的首地址________ ;函数的指针是指__函数首地址____________。
10.在函数调用中,一个函数无论直接还是间接地调用自身,该调用称为__递归_____调用。
Java技术Asp.netVB编程Asp编程C++/VCDelphi方案一 Basic语言 & Visual Basic 优点 (1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。 (3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。 缺点 (1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。 (3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。
它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。 综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。
对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。 Basic/Visual Basic简介 ============================================== 方案二 Pascal语言 & Delphi 优点 (1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。 (3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。 缺点 Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。 Pascal语言简介 Delphi简介 ============================================== 方案三 C语言 & Visual C++ 优点 (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。 (3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点 对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。 综述旦酣测叫爻既诧习超卢: VC是程序员用的东西。
如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。 C语言简介 ============================================== 方案四 C++语言 & C++ Builder 优点 (1)C++语言的优点全部得以继承。
(2)完全的可是化。 (3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。 缺点 由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。
C语言简介 ============================================== 方案五 SQL语言 & Power Builder 对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。
各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。 [NextPage] JSP简介 在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。
JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品推荐:编程学习网。
c++是面向对象的语言 它完全兼容C语言
它的类型 int double bool float char string
它有 类 对象
它有 继承 多态 封装
如果你想学习c++ 我推荐你这样学习
1.首先是结构化编程,即C语言和数据结构;
2.然后是面向对象编程,既C++;
3.然后是掌握STL标准模板库的应用; 【注意完成在此步骤之前,连入门都不算的。】
4.然后才是掌握一种开发工具,比如VC++;
5.然后才是逐步学习网络、数据库、界面相关的内容; 【时候可以写点应用软件了,算是出师。】
6.选择你自己感兴趣的一个方向,深入发展。 【完成此步骤,你也就算专家了】
这些视频教程蛮好的
具体请查看
百度百科
搜搜百科
教了多年《C程序设计》课程,大多学生觉的这门课程难学。
其实,按照我们现在的教学大纲和教学要求,只要同学们掌握一些方法,克服心理上畏难、不轻言放弃,是完全可以学好的。 《C程序设计》的内容很丰富,按照我们现在的教学大纲,教学的主要内容是基础知识、四种结构的的程序设计、函数与数组的应用和一些简单的算法。
在学习时,同学们应该把主要精力放在这些部分,通过实践(练习和上机调试等熟练掌握。当然,在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是我们同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好? 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。
比如:在C语言中最典型的是关于结构化程序设计构思,不管是那种教材,一开始就强调这种方法,这时也许你不能充分体会,但是学到函数时,再回头来仔细体会,温故知新,理解它就没有那么难了。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。
那么,我们如何学好《C程序设计》呢? 一.学好C语言的运算符和运算顺序 这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。下面我们通过几个例子来说明: (1) 5*8/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5 *8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 对于c=++a*b来说,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a++*b来说,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。
这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一个三目运算,它的功能是先做关系运算a>b部分,若结果为真,则取问号后a的值,否则取冒号后b的值,因此c的值应该为6,这个运算可以用来代替if…else…语句的简单应用。
二.学好C语言的四种程序结构 (1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 例如;a = 3,b = 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。
顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2) 分支结构 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关。
面向对象三大特性:封装,继承,多态 面向对象(Object Oriented,缩写为OO)是现代软件技术的精髓。
从早期的SmallTalk到如日中天的Java,都渗透着面向对象思想。OO具有三大特性:封装性、继承性和多态性。
想掌握面向对象思想,就必须深入理解 其三大特性。这里我尽量少谈概念,只用一个生活中的例子和一段代码来解释它们。
1、封装性(Encapsulation) 所谓封装,就是将某些东西包装和隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。OO将万物都视为“对象”(Object),任何对象都具有特性和行为。
我们将其特性称为“成员变量” (MemberVarible),将其行为称之为“成员函数"(Member Function),被封装的特性只能通过特定的行为去访问。 大家都见过旅馆里常用的一种茶叶吧,就是用纸袋把茶叶包装起来再系是一根线。
用的时候只需要将其放在水杯里泡就行。这样的好处是不会将茶叶渣和茶垢弄的满杯子都是。
好!这就是一个封装的例子。 我们喝茶的目的是享受茶叶的香冽;所以茶叶的味道(Flavour)就是茶叶所具有的最 重要特性之一;可是我们无法直接享受它的清香,因为被外面的纸袋“封装”起来了。
唯一的办法就是“泡”(Dilute),将茶袋扔在开水中泡,它的味道就出来了,融入水中。 如果我们把袋装茶叶看作一个对象的话,它提供了成员变量Flavour和成员函数Dilute 。
并且Flavour是私有(Private)的,我们不能直接把它吞进肚子去,而只能通过成员函 数Dilute才能享受Flavour。 下面用C++代码来描述这个例子: Class CTea { Private: Cstring m_Flavour; //味道 Cstring m_Color; //颜色 。
//等等其它属性 Private: Void CTea(); //构造函数 Void ~CTea(); //析构函数 Public: Cstring Dilute();//沏茶 。
//等等其它方法 } Cstring CTea::Dilute() { //怎样泡出味道来的代码 } 这就是封装。
通过将对象的某些属性声明为Private隐藏起来,只能使用其提供的特定 方法去访问。 2、继承(Inheritance) 如果只是封装,那么非面向对象语言也能部分的做到。
比如在C中,用结构(Struct)、VB中用自定义类型(Type)也能封装一些变量。 OO最有吸引力的特性是继承。
通俗的说后代具有祖先的某些特点就叫继承,当然后代还可以具有自己独有的特征。举个例子吧,菜刀。
菜刀(cutlery)是钢(Steel)做的,钢是一种金属(Metal),金属则是大千世界里的一种物质(Substance)。所以菜刀的一些特性可以追溯到物质具有的一般属性。
正是因为这个道理,MFC中所有类均从CObject继承而来。 这就是继承。
菜刀直接继承了钢的特性,钢又继承了金属的特性,。
下面的代码描 述了这种复杂而有独特的继承关系: Class CSubstance { Private: int m_color; void CSubstance(); void ~CSubstance(); //。
(我是学文科的,具体属性说不上来) } Class CMetal:Public CSubstance { void CMetal(); void ~CMetal(); //。
} Class CSteel:Public CMetal { void CSteel(); void ~CSteel(); //。
} Class CCutlery:Public CSteel { private: Cstring m_Blade; void CCutlery(); void ~CCutlery(); //。
Public: void Cut(); } 这里,CSubstance被称为基类(Base class),其它被称为衍生类(Derived class)。衍生类与基类是“Is kind of”的关系。
子类与其祖先类之间复杂的函数调用关系不在本文讨论之列。 继承是一种树状的层次关系。
子类在继承祖先类的成员变量和成员函数的同时也可以 定义自己的成员变量和成员函数。比如,Metal 除了继承了Substance的一般特性外,还具有自己的属性诸如可延展性;CCutlery在继承CSteel的特性后还具有自己的成员诸如“刀刃”(Blade)、“锋利”(Sharpness)、行为有如“切”(Cut)等。
面向对象技术是对现实生活的抽象,你可以用生活中的经验去思考程序设计的逻辑。 3、多态性(Polymorphism) 讨论多态之前先要明白什么是“虚拟”(Virtual)。
C++/MFC就是用虚拟这种方式实现多态的。为什么“虚拟”这个概念?看下边的例子: Class Cincect //昆虫类 { private: int m_foot; //脚的数量 。
//其它成员变量 private: void Cincect(); void ~Cincect(); public: void Bite()//咬人 { 。
//怎样咬人的代码,比如张开嘴啃 } } 我把Bite(咬)这个动作在基类中定义为一般化动作。
可是,不是所有昆虫咬 人的方法都一样(况且还有的根本就不咬人呢,比如蜻蜓),比如蚊子是用嘴那个 吸管叮人而蚂蚁是用嘴去夹。 从昆虫这个类别衍生出以下两个类别:Cant(蚂蚁)、Cmosquito(蚊子)。
class Cant :public Cincect //蚂蚁类 { 。
} class Cmosquito :public Cincect //蚊子类 { 。
} 它们都继承了Cincect的所有成员,当然也继承了Bite()这个动作。现在就有问题了: 同样继承自昆虫,当我们使用Bite()这个动作时怎么才能区分蚂蚁和蚊子各自的独有的咬人方式呢? 方法之一是用“::”符号指明具体引用的是那一个,但这样明显失去了灵活性; 另一种方法就是“虚拟”。
使用关键字virtual将Bite()声明为虚拟函数,然后在每个 衍生类中重新定义,描述它们各自的咬人方法,调用的时。
c++是面向对象的语言 它完全兼容C语言 它的类型 int double bool float char string 它有 类 对象 它有 继承 多态 封装 如果你想学习c++ 我推荐你这样学习 1.首先是结构化编程,即C语言和数据结构; 2.然后是面向对象编程,既C++; 3.然后是掌握STL标准模板库的应用; 【注意完成在此步骤之前,连入门都不算的。】
4.然后才是掌握一种开发工具,比如VC++; 5.然后才是逐步学习网络、数据库、界面相关的内容; 【时候可以写点应用软件了,算是出师。】 6.选择你自己感兴趣的一个方向,深入发展。
【完成此步骤,你也就算专家了】 这些视频教程蛮好的 /playlist/id/2437800 .cn/eschool/video/c++/ 具体请查看 百度百科 /view/118570.htm 搜搜百科 /ShowLemma.e?sp=l51909&ch=w.search.baike.unelite。
1。
static变量时为了限定一个范围,使其他文件不能访问它,再者就是它赋值之后,以后每次调用它都是上一次的值。直到程序结束。
const常量则是要求他所定义的量不能改变。2。
虚函数的目的是为了实现多态性。父类的方法定义为虚函数,子类继承时自动定义为虚函数,如果子类对象调用该虚函数,则自动调用子类的虚函数,关键点在于,你用new定义一个子对象时把返回值给父类指针,再用这个父类指针去调用子类虚函数时它也自动去调用子类的虚函数而不是父类的。
具体原因在于虚函数列表。这个可以以后再仔细看看。
3。栈是一种数据结构,就是你怎么放数据,数据怎么安排。
在栈中是像把数据让进一个有底的杯子里似的,出来的顺序和进去的顺序正好相反。最后进去的必须最先出来。
要不里边的出不来。4。
复数,就是有实部和虚部的数。其实就是你把y轴看成虚轴,x轴是实轴就行了。
其他运算方面就是用的勾股定理。例如:a=3+4i。
实部是3,虚部是4i。a长度为55。
当你想把一个运算符变成具有你所定义的功能的时候用重载运算符。比方说你想让字符串可以直接加,那你就可以在字符串类里定义一个函数,重载加号。
函数的重载是当使用好几个类似的函数方法(函数名相同),其中只是参数类型或个数不同时,就可以重载该函数。实现函数的多态性。
而不必定义好几个函数名。6。
这个题目中A应该是B的父类才能这样赋值。对象是一个数据结构,就像一个结构体。
它是一个数据块。当然就有一个地址。
类似于数组名是数组首地址。对象名也代表对象这个数据块的首地址。
所以可以赋值给一个指针,而这个指针必须是本对象或者父对象类型。7。
要引用的volatile time_t clock常量在本文件的外部定义,即通知本文件该常量在其他文件中定义了。本文件中用到了,就去那个文件中去找它的定义。
8。这个不解释,具体太多。
你可以看看孙鑫vc++视频。9。
不用装,vc6.0里就有。mfc是用面向对象的技术对api进行了包装,利用mfc提供的类可以管理窗口,菜单,对话框。
执行基本输入输出等功能。请采纳答案,支持我一下。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.497秒