自学C++笔记1
今天开始学习C++边学边记录一下(第一次用markdown,感觉写的好慢)。
第一章
1. C++基础知识
1.1 C++简介
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。(来自百度百科)
1.2 C++ 与C语言程序对比
这里有一个简单的程序 (1)C语言编写
#include<stdio.h>
void main()
{
printf("Hello,world!\n");
}
(2)C++实现相同功能的程序
#include<iostream>
using namespace std;
int main()
{
cout <<"Hello,world!"<<endl;
return 0;
}
程序运行结果 Hello,world! 为什么不加.h没太懂,只是粗略了解一下。 C++ 程序第二句被叫做命名空间。 查找资料发现命名空间,大致意思可以使用一些额外信息,来区分同名的函数。 就如同计算机文件夹里面有很多子文件夹,不同子文件夹的文件名字可以相同。个人理解这里的额外信息是子文件名,每个子文件夹分配不同的内存空间。 比如下面命名空间定义程序:
namespace A {
int a = 1;
}
namespace B {
int a = 2;
}
void test()
{
cout<<"A中a = "<<A::a<<endl;
cout<<"B中a = "<<B::a<<endl;
}
定义命名空间 命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:
namespace namespace_name {
}
为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:
name::code;
在C++的标准库中,将用于进行数据输入输出的类统称为”流类“。cin是流类istream的对象,cout是流类ostream的对象。要使用流类,需要在程序中包含iostream头文件。 上面C++程序中前两句,可以使iostream流进入可用状态, using namespace std 这个指令表明程序准备使用std命名空间。 和C语言printf,scanf类似,C++的cout,cin 也有很多格式化操作算子。具体可以学习 http://c.biancheng.net/view/275.html cout<<运算符是自左向右结合的,因此各项输出项自左向右顺序插入到输出流中  标准输入输出流
百度图片侵删
#include<iostream>
using namespace std;
int main()
{
cout<<8<<"\t"<<1<<"\n"<<endl;
cout<<"ss"<<ends<<endl;
int n=1,*p=&n;
cout<<p<<" "<<(unsigned long)p<<endl ;
char *s = "ss";
cout<<s<<"\t"<<(void*)s<<endl;
return 0;
}
运行结果 :8 1
ss
0019FF2C 1703724
ss 0046F020
Press any key to continue
cin语句一般格式为cin>>变量1>>变量2>>…>>变量n。 使用键盘键入数据各数据之间需要键入分隔符,一个或多个空格符,制表符和回车键。
#include<iostream>
using namespace std;
int main()
{
char a;
int i;
float b,c;
cin>>i>>b>>c;
a =i;
cout<<"a="<<a<<"\ti="<<i;
cout<<"b="<<b<<"\tc="<<c<<endl;
return 0 ;
}
假如输入第一个小数或数字
2.1 8 55
a= i=2 b=0.1 c=8
Press any key to continue
88 2.1 3 因为88对应ASCII码 i是Char型
a=X i=88 b=2.1 c=3
Press any key to continue
i 1 2 显示错误
a=? i=-858993460 b=-1.07374e+008 c=-1.07374e+008
Press any key to continue
今天先写到这里,明天接着学。
|