C++初学体验
以下所学来自于慕课网
james_yuan
2019年12月30日
IDE环境 (Intergrated Development Environment)
集成开发环境:
一般包括代码编译器,编辑器,调试器和图形用户界面工具.
工具:
Visual Studio 2010 旗舰版
工具插件:
Visual Assist X for Visual Studio
iso文件:
需要DAEMON Tools Lite虚拟光驱来运行
打开 setup.exe
设置字体和颜色:工具-选项-字体颜色
只安装C++编译器
安装完之后会多一个 VAssistX 的菜单
新建项目:
项目名称,保存路径。
新建文件:
win32-win32 控制台程序 源文件中添加一个C++文件。
以上内容为VS2015的使用方法,文章之后出现的代码的编写和执行都是在CodeBlocks上完成。
C语言中的数据类型
数据类型:
一 基本类型
(1)整型 int
(2) 字符型 char
(3)实型
1:单精度实型 float
2:双精度实型 double
二 构造类型
(1)数组类型
(2)结构类型 struct
(3)联合类型 union
(4)枚举类型 enum
三 指针类型
四 空类型(无值类型)void
C++中新的结构类型
逻辑类型 真 假
C 没提供 非0 0
C++ bool true false
新的结构类型有哪些好处?
简洁易读易懂
C语言 C++
int flag=0; int flag=0;
if(flag==1) if(flag)//执行条件是flag为真
{ {
//to do //to do
} }
else else
{ {
//to do //to do
} }
初始化方法
C语言 int=1024; 复制初始化方法
C++
(1)复制初始化 int=1024;
(2)直接初始化 int 小(1024);
直接初始化的好处?
随用随定义
C 中所有变量必须位于函数体最前面
C++ 所有变量随用随定义
C语言 C++
int main() int main()
{ {
int v1=1,v2=3; int v1=1;
v1=v1+2; v1=v1+2;
v2=v2+v1; int v2=3;
} v2=v2+v1;
}
C(C++)的输入和输出(I/O)方式
输入过程:
输入设备->输入流->scanf(cin)->变量
输出过程
变量->printf(cout)->输出流->输出设备
C++的I/O的优势?
(1)cout的语法形式
cout<<x(变量)<<endl;
cout<<“x+y=”<<x+y<<endl;
为什么cout<<x,y,z<<endl;是错误的?
语法规定
cout<<x<<y<<z<<endl; 正确写法
(2)cin的语法形式
cin>>x;
cin>>x>>y;
优势:
1.不用关心占位符
2.不用关注数据类型
3.不易出现问题
oct 八进制缩写符号
dec 十进制
hex 十六进制
bool y=false;//定义一个布尔值
boolalpha //以布尔值的形式输出
C++ (namespace)的命名空间
为什么有命名空间?
精确的查找函数(个人理解区分不同的同名函数)
namespace A namespace B
{ {
int x=0; int x=2;
void f1(); void f1();
void f2(); void f3();
} }
cout<<A::x<<endl; //调用A中的x变量
B::f1();访问B中的f1函数
2019年12月30号
题目一
// 要求:用户输一个整数,将该整数分别以8进制,10进制,16进制打印在屏幕上
//要求:提示用户输入一个布尔值(0或1),以布尔方式将值打印在屏幕上
#include
#include<stdlib.h>
using namespace std; (包含C++中几乎所有基础标识符如cin,cout,endl)
int main(void)
{
cout<<“请输入一个整数:”<<endl;
int x=0;
cin>>x;
cout<<oct(八进制符号缩写)<<x<<endl;
cout<<dec(十进制缩写)<<x<<endl;
cout<<hex(十六进制缩写)<<x<<endl;
cout<<“请输入一个布尔值(0/1):”<<endl;
bool y=false;(布尔值定义)
cin>>y;
cout<<boolalpha(以布尔值的形式输出结果)<<y<<endl;
system(“pause”);
return 0;
}
习题二
//定义一个命名空间为myNum,在该命名空间中定义一个整型变量x,并给该变量赋值为105;
使用C++新特性判断myNum命名空间下的变量是奇数还是偶数。
#include
#include <stdlib.h>
using namespace std;
namespace myNum //填写命名空间的关键字
{
int x = 105;
}
int main()
{
// 使用bool类型定义isOdd,作为状态位
bool isOdd = false;
if(myNum::x % 2 == 0)
{
//改变状态位的值,使其为false
isOdd = false;
}
else
{
//改变状态位的值,使其为true
isOdd = true;
}
// 判断状态位的值
if(isOdd)
{
// 如果状态位的值为true,则打印变量x是奇数
cout<<“变量x是奇数”<<endl;
}
else
{
// 如果状态位的值为false,则打印变量x是偶数
cout<<“变量x是偶数”<<endl;
}
system(“pause”);//避免窗口自动关闭
return 0;
}
习题三 综合训练
//*知识点:bool类型 命名空间 输入输出
//*使用一个函数找出一个整型数组中的最大值或最小值
#include
#include<stdlib.h>
using namespace std;
namespace CompA
{
int getMaxOrMin(int *arr,int cou,bool isMax)
{
int temp = arr[0];
for(int i=1;i<cou;i++)
{
if(isMax)
{
if(temp<=arr[i])
{
temp=arr[i];
}
}
else
{
if(temp>=arr[i])
{
temp=arr[i];
}
}
}
return temp;
}
}
int main(void)
{
int arr[4]={5,2,1,0};
bool isMax=false;
cin>>isMax;
cout<<CompA::getMaxOrMin(arr,4,isMax)<<endl;
system(“pause”);
}