C++(2)

Cpt2 开始学习C++

2.1 进入C++

a. C++大小写敏感;
C++的常规输出为cout,此外在包含C标准io库stdio.h的基础上可以使用printf()、scanf()等格式化C输入输出;cout也支持格式化,但是其格式化较为复杂;
常规的c++文件成分包括:注释;预处理器编译指令#include;编译指令using namespace;主体函数main或其他函数;函数体{};结束标识及返回值return;

b. 函数包括函数头(输入输出说明,即声明)和函数体(具体操作,即实现,其中;为操作的最小分割单元);
形参列表,argument list/parameter list;
main函数一般由操作系统调用;通过main函数实现对其他函数的调用;
windows中的动态链接库模块(在使用时作为主体函数的子模块被调用)不需要独立的main;此外某些特定用用场景的控制芯片也不需要main;
注释://或/**/
注释对程序的解释和维护有重要意义;一般对程序的注释包含,cpp文件整体的注释说明(文件开头,包括文件名、作者、作用、最近修改时间、版本、细节问题、联系方式等)、变量说明(变量作用,变量注意事项)、复杂语句说明(例如函数调用)、函数说明、使用说明等;

c. C++98标准的输入输出要求包含:
#include
using namespace std;
iostream被称为包含文件include file或头文件header file,一般C++的头文件可以分为自身的头文件、C头文件header.h、由C转换的头文件cheader等,去掉.h不只是形式上的变化,头文件中可以包含命名空间;

namespace的作用是区分同名函数来源,例如头文件A和B都定义了函数exp(),则使用A的exp()函数可以采用using namespace A; exp()的方式,也可以使用A::exp()的方式;通过预先使用using编译指令规定命名空间可以避免在编程过程中重复对函数进行指定;
也可以对单独的函数预先使用using进行包括,而不包含整个命名空间,例如using std::cout;
可以在函数体里使用namespace,可能是在当前作用域有效;

d. 标准C++输出,cout<<”blabla”<<endl;
其中cout是一个预定义对象,知道如何显示字符串、数字、字符等;这体现出对象的易用性;从概念上看,输出是一个流,即从程序流出的一系列字符,cout对象表示这种流,其属性是在iostream文件中定义的,cout的对象属性包含一个插入运算符<<,可以将右侧的信息插入到流中;
数据流:只能以事先规定好的顺序被读取一次的数据的一个序列;
endl称为控制符manipulator,作用是重起一行;单纯的换行符还可以使用\n,即对字符n的转义,区别是endl确保程序继续运行前刷新输出;
即使是对数据的输出,cout也会首先将其转换为字符串类型,这取决于<<运算符的重载;
可以对<<进行重定义进一步扩展cout的输出支持;

e. C++源代码的格式化
不能将空格、制表符、回车等放在元素中间或字符串中间,而是需要作为一个独立的元素;

f. 传统C++源码风格,
 每条语句占一行;
 每个函数都有一个开始花括号和结束花括号,各占一行;
 函数语句进行合理的缩进;
 与函数名称相关的圆括号周围没有空白;

2.2 C++语句

a. 声明语句,作用是指出存储类型、大小并申请位置标签;
int a;申请内存,将内存地址和类型存储到某一位置,关联到变量名;
a=1;修改数据;
例如BASIC这类隐式声明的类型,可能会在编写过程中出现拼写错误而错误调用;
声明语句进一步分为定义声明和引用声明;
区别于Pascal和C,C++不要求在结构的开始位置声明变量,一般在首次使用前声明(类似C99);

b. C++支持连续赋值,按照从右向左的顺序,即认为这一运算符的右值为输入,因此要求在执行这一运算符时,右值必须为实值

2.3 其他C++语句

a. cin,输入流对象,cin>>a,使用>>运算符从输入数据流抽取数据存入a中;

b. cout拼接输出,同一组cout语句中支持不同类型混合输出,且空白不影响输出格式;

c. 类简介,类描述的是一组数据格式及其用法,对象则是根据类创建的实体;类似函数,类库是C++开发的核心之一;类函数的调用可以直接调用函数本身,或者构造实体之后调用特定格式的函数;

2.4 函数

a. 类似变量的类型声明,函数需要使用原型说明返回值类型、函数名、输入参数等;一般将函数的声明整合到头文件中,并在同名库文件中进行实现;
一般编译器会自动的搜索库文件并查找函数声明,具体查找方式取决于编译器;注意查找和编译是两个过程;

b. 参数为空等价于隐式声明void;
在C++中函数调用必须包含括号,表明函数身份;
在有些语言中,有返回值的函数称为函数,没有返回值的函数可以称为过程或子程序;

c. 一般规范的自定义函数声明都放在main函数之前;

d. C++不允许嵌套定义;

e. main函数的返回值返回给操作系统;许多操作系统都可以通过某些脚本文件或批处理等执行程序并测试返回值(退出值),根据退出值状态查看程序调用情况;

f. 关键字不可以用做别的功能;
main不是关键字;
在程序中将同一个名称同时用作对象名和变量名可能会导致编译器混淆,但是在程序中不使用cout的情况下确实可以将cout用作变量;
一般可以认为函数在调用时等价于其返回值(所以返回值类型又称为函数类型),因此具有实值的函数可以作为一个输入值使用;

g. 对于namespace,更通行的理念是,只让需要访问名称空间的函数访问它是更好的选择(而不是在文件开始包含namespace,使得该文件中的所有函数可以访问该命名空间);
using nameospace std,放在函数外部,使之后的函数都可以访问std,放在函数定义中,只在当前作用域有效;
using std::cout,单一使用std::cout;
std::cout,单次使用cout;

h. 概括来说C++语句可以分为以下6种,声明语句、赋值语句、消息语句、函数调用、函数原型、返回语句;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值