动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.C++ 中大尺寸图象的显示技巧.
.C语言中可变参数的用法.
.C/C++中动态链接库的创建和调用.
.MINI-FOOLFLY 游戏代码.
.c程序设计教程7-16号习题,见笑了.
.在C++中创建并使用Web服务.
.文件加锁的例题示范.
.用VC++实现http代理.
.跨平台开发.
.COM组件设计与应用之实现多接口.
.C++Builder动态更改自定义打印纸.
.C程序设计语言概论.
.简单屏幕烟花程序.
.用游戏串起程序员的基本功之二.
.高质量C++/C编程指南 --&nb.
.Linux 和 Unix 安全编程:环境变量.
.window中进程间如何通信.
.XML Web Service 数据交换.
.MFC中用正则表达式进行有效性验证.
.CGI脚本入门学习.

C++ 语言基础(1)

发表日期:2008-3-8 |



  入门简介    
变量 C++数据类型 C++操作符 C++中的函数 main函数 数组 字符串数组 字符串操作函数

C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会碰到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书还非凡厚,所以别指望我能用三言两语说清楚。读者学完本书并使用C++ Builder一般时间之后,最后对C++语言再作更深入的了解。

C++可以最充分地利用面向对象编程(OOP)的优势。OOP不只是一个新名词,而有它的实际意义,可以生成可复用的对象。新术语 对象(object),和前面介绍的构件一样,是完成特定编程任务的软件块(构件是对象,但对象不全是构件,稍后会解释这点)。对象只向用户(使用对象的编程人员)显示必须的部分,从而简化对象的使用。用户不必知道的所有内部机制都隐藏在幕后。这一切都包括在面向对象编程的概念中。OOP可以用模块化方法进行编程,从而避免每次从头开始。C++ Builder程序是面向OOP的,因为C++ Builder大量使用构件。生成构件后(你生成的或C++ Builder内置的构件),就可以在任何C++ Builder程序中重复使用。构件还可以扩展,通过继续生成具有新功能的新构件。最妙的是,构件隐藏了所有内容细节,使编程人员能集中精力充分利用构件。

入门简介
在C++之前先有C语言,C++是建立在C语言之上的,称为“带类的C语言”。这个C语言基础在当今的C++程序中仍然很重要。C++并不是取代C,而是补充和支持C。本章余下部分和下几章主要介绍C++中来源于C语言的部分。实际上,这里介绍的是C语言,第2课"C++基础"中才转入C++。读者不必关心哪个来自C,哪个来自C++,因为这些全在C++中。C++语言很难按顺序介绍,因为我们要介绍的所有特性都是交叉的。我预备的一次介绍一块,然后拼凑起来。到第3课"高级C++"结束,你将对C++语言有个完整的了解。一下子没有把握某个概念也没关系,有些概念必须经过实践才能完全了解。

变量
还是从变量讲起来吧。变量(variable)实际上是赋予内存地址的名称。声明变量后,就可以用它操作内存中的数据。下面举几个例子进行说明。下列码段用了两个变量,每条语句末尾用说明语句描述执行该语句时发生的情况:
int x;// variable declared as an integer variable
x = 100;// 'x' now contains the value 100
x +=50;// 'x' now contains the value 150
int y = 150;// 'y' declared and initialized to 150
x += y;// 'x' now contains the value 300
x++;// 'x' now contains the value 301
新术语 变量(variable)是留作存放某个数值的计算机内存地址。注重x的值在变量操作时会改变,稍后会介绍操作变量的C++操作符。警告 声明而未初始化的变量包含随机值。由于变量所指向的内存还没有初始化,所以不知道该内存地址包含什么值。
例如,下列代码
int k;
int y;
x=y+10; //oops!
本例中变量y没有事先初始化,所以x可能取得任何值。例外的情况是全局变量和用static修饰声明的变量总是初始化为0。而所有其它变量在初始化或赋值之前包含随机值。变量名可以混合大写、小写字母和数字与下划线(_),但不能包含空格和其它非凡字符。变量名必须以字母或下划线开始。一般来说,变量名以下划线或双下划线开始不好。变量名答应的最大长度随编译器的不同而不同。假如变量名保持在32个字符以下,则绝对安全。实际中,任何超过20个字符的变量名都是不实用的。
下例是有效变量名的例子:
int aVeryLongVariableName;// a long variable name
int my_variable;// a variable with an underscore
int_ x;// OK,but not advisedint X;// uppercase variable name
int Labe12;// a variable name containing a number
int GetItemsInContainer(); // thanks Pete!
说明 C++中的变量名是考虑大小写的,下列变量是不同的:int XPos;int xpos;假如你原先所用语言不考虑大小写(如Pascal),则开始接触考虑大小写的语言可能不太适应。

C++数据类型
新术语 C++数据类型定义编译器在内存中存放信息的方式。在有些编程语言中,可以向变量赋予任何数值类型。例如,下面是BASIC代码的例子:x = 1;x = 1000;x = 3.14;x = 457000;在BASIC中,翻译器能考虑根据数字长度和类型分配空间。而在C++,则必须先声明变量类型再使用变量:int x1 = 1;int x = 1000;float y = 3.14;long z = 457000;这样,编译器就可以进行类型检查,确保程序运行时一切顺利。数据类型使用不当会导致编译错误或警告,以便分析和纠正之后再运行。有些数据类型有带符号和无符号两种。带符号(signed)数据类型可以包含正数和负数,而无符号(unsigned)数据类型只能包含正数。表1.1列出了C++中的数据类型、所要内存量和可能的取值范围。

表1.1C++数据类型(32位程序)
数据类型 字节 数取值范围
char 1 -128到126
unsigned char 1 0到255
short 2 -32,768到32,767
unsigned short 2 0到65,535
long 4 -2,147,483,648到2,147,483,648
unsigned long 4 0到4,294,967,295
int 4 同long
unsigned int 4 同unsigned long
float 4 1.2E-38到3.4E381
double 8 2.2E-308到1.8E3082
bool 1 true或false
从上表可以看出,int与long相同。那么,为什么C++还要区分这两种数据类型呢?实际上这是个遗留问题。在16位编程环境中,int要求2个字节而long要求4个字节。而在32位编程环境中,这两种数据都用4个字节存放。C++Builder只生成32位程序,所以int与long相同。说明 在C++ Builder和BorLand C++ 5.0中,Bool是个真正的数据类型。有些C++编译器有Bool要害字,则Bool不是个真正的数据类型。有时Bool只是个typedef,使Bool等价于int。typedef实际上建立别名,使编译器在一个符号与另一符号间划上等号。typedef的语法如下:typedef int Bool;这就告诉编译器:Bool是int的别名。说明 只有double和float数据类型使用浮点数(带小数点的数)。其它数据类型只涉及整数值。尽管integer数据类型也可以指定带小数点的数值,但小数部分会舍弃,只将整数部分赋予整型变量,例如:int x=3.75;得到的x取值为3。注重,这个整数值并不是四舍五入,而是放弃小数部分。顺便说一句,大多数Windows程序很少用到浮点数。C++可以在必要时进行不同数据类型间的换算。例如:short result;long num1 = 200;long num2 = 200;result = num1 * num2;这里我想将两个长整型的积赋予一个短整型。尽管这个公式混用了两种数据类型,但C++能够进行换算。计算结果会怎样呢?结果会让你大吃一惊,是25536,这是绕接(wrop)的结果。从表1.1可以看出,短整型的最大取值为32767,在最大值之上加1会怎么样呢?得到的是32768。这实际上与汽车里程计从99999回到00000的道理一样。为了说明这点,请输入并运行下列清单1.3中包含的程序。
清单1.3Wrapme.cpp
1: #include <iostream.h>
2: #include <conio.h>
3: #pragma hdrstop
4:
5: int main(int argc,char **argv)
6: {
7:short x = 32767;
8:cout << " x = " << x << endl;
9:x++;
10: cout << " x = " << x << endl;
11: getch();
12: return 0;
13: }
说明后面几节要介绍的有些清单没有下列语句:
#include<condefs.h>
C++ Builder生成新的控制台应用程序时会自动加上这条语句。这在你所用的程序中不是必须的,所以代码清单中将其省略。无论有无这条语句,程序运行结果是一致的。分析输出结果为:x=32767 x=32768假如用int数据类型,则不会有这个问题,因为int数据类型的取值范围在正向20亿之间,一般不会有绕回的问题。但这时程序可能会稍大一些,因为int需要4字节存储,而short只需要2字节存储。对于大多数应用程序,这个差别是不显著的。前面介绍了自动类型换算。有时C++无法进行换算,这时可能在编译器中产生编译错误,说Cannot convert from x to y(无法从x换算到Y)。编译器也可能警告说Conversion might lose significant digits(换算可能丢失显著位)。提示 编译器警告应当作编译器错误,因为它表明出了错误。我们应努力生成无警告的编译。有时警告无法避免,但一定要认真检查所有警告。应充分了解警告的原因并尽量予以纠正。

C++操作符
操作符(operator)用于操作数据。操作符进行计算、检查等式、进行赋值、操作变量和进行其它更希奇的工作。C++中有许多操作符,这里不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符说明举例
算术运算符
+ 加 x=y+z;
- 减 x=y-z;
* 乘 x=y*z;
/ 除 x=y/z;
赋值运算符
= 赋值 x=10;
+= 赋值与和 x+=10;(等于x=x+10;)
-= 赋值与减 x-=10;
*= 赋值与乘 x*=10;
\= 赋值与除 x\=10;
&= 赋值位与 x&=0x02;
= 赋值位或 x=0x02;
逻辑操作符
&& 逻辑与 if(x && 0xFF) {...}
逻辑或 if(x 0xFF) {...}
等式操作符
== 等于 if(x == 10) {...}
!= 不等于 if(x != 10) {...}

< 小于 if(x < 10) {...}
> 大于 if(x > 10) {...}
<= 小于或等于 if(x &l
上一篇:C/C++ 编译器和调试器以及静态库、动态库使用汇总(1) 人气:1037
下一篇:C++ 和 Delphi 的函数覆盖(Override)与重载(overload 人气:650
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号