开始学习C++

大笑大笑不知为何,用习惯了C#之后,回头看C++真是有点惨不忍睹,当然还是各有所长!


1.尊重标准


main函数标准用法:int main{};

其变体 int main{void}; void main{}; main{}虽然在大部分情况下也适用,但应尽量遵从C++的标准风格!


1.1 C++头文件风格


C++头文件没有扩展名,有些C中的头文件被转换成C++中的头文件,这些文件被重新命名,去掉扩展名“.h”(使之成为C++风格),并在 文件名称前面加上"c",表明来自于C语言。



1.2 endl与"\n"的区别


\n      只代表换行的转义字符
endl   除了代表换行,还紧跟着刷新缓冲区

在字符串中使用\endl比\n要更加有优势,显示数字时endl更加便捷一些!以下三种方式实现的效果相同!

cout<<endl;
cout<<'\n';
cout<<"\n";


注意:对于声明变量,C++的做法是尽可能在首次使用变量前声明它!


1.3 关于赋值


C++中支持连续赋值:a=b=c=0;

1.4 命名空间


让程序能够访问名称空间std的方法有四种:

  1. using namespace std; 放在函数定义之前,让文件中所有函数都能使用名称空间std的所有元素。
  2. using namespace std;放在特定的函数定义中,让该函数能够使用命名空间下的所有元素。
  3. 在特定的函数中使用using std::cout; 这样的编译指令,让该函数可以使用指定的元素cout;
  4. 不使用using 指令,使用前缀std::; 如 std::cout,区别于C#和Java;

1.5 C++的初始化方式


注意C++中特殊的大括号初始化器: int a(3);

1.6 cout的一些高级用法


(cout是std名字空间中定义的全局对象,可以直接拿来用,是对象哟,而不是类的方法!)

        cout默认情况下是以十进制显示整数,若要以十六进制或八进制方式显示值,可以使用控制符dec(decimal)、hex和oct(octal),值得注意的是在修改格式之前,原格式将一直有效!

cout<<dec;     //以十进制显示
cout<<hex     //以十六进制显示
cout<<oct;  //以八进制显示

1.7 const限定符


const int Month = 12;

需要注意的地方:
  1. const限定符用来声明一个常量,类似于C中的#define
  2. 常量名首字母通常大写,用来区分变量(当然也有一些其它的书写方式)。
  3. 应在声明的同时对const进行初始化,否则该常量的值将是不确定的,并不能修改!(编译也通不过)
const int Toes;
Toes = 12;           // too late!!!

   

1.8 强制转换

三种常用的强制转换格式:

(int) s;                            // old c syntax
int (s);                           //new C++ syntax
static_cast<int>(s);      //using static_cast

1.9 声明和定义的区别

参考资料:C++Primer》第四版

①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。

②变量声明:用于向程序表明变量的类型和名字。

③定义也是声明:当定义变量时我们声明了它的类型和名字。

④extern关键字:通过使用extern关键字声明变量名而不定义它。


我们来看一看实际的例子!

1.定义也是声明,extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定义了。

例如:extern int i; //声明,不是定义

             int i; //声明,也是定义           


2.如果声明时进行了初始化,就被当作定义,即使前面加了extern。只有当extern声明位于函数外部时,才可以被初始化。

例如:extern double pi=3.1416;  //定义


3.函数的声明和定义区别比较简单,带有{ }的就是定义,否则就是声明。

例如:extern double max(double d1,double d2);  //声明


4.除非有extern关键字,否则都是变量的定义。

例如:extern int i; //声明

             int i; //定义          



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值