最近开始结束C++和JAVA 学点新东西 呵呵
已经注释的命令下一节将不再注释
C++ 所在IDE为 VC++ 2008
里面的内容全是俺一个一个打下来的 转载请你保留出处
1:
#include <iostream> //定义包含头文件 iostream输入输出文件
int main() 定义函数返回值 为整数型
{ //程序开始
std::cout<<"我喜欢C++\n"; //屏幕输出 我喜欢c++ 并且换行
int main() 定义函数返回值 为整数型
{ //程序开始
std::cout<<"我喜欢C++\n"; //屏幕输出 我喜欢c++ 并且换行
int x; //定义变量 x
std::cin>>x; // cin 是获取键盘输入的值 也就是 当你点击键盘上的一个键后 下面就显示
std::cout<<x;
return 0; //返回0
} //程序结束
std::cin>>x; // cin 是获取键盘输入的值 也就是 当你点击键盘上的一个键后 下面就显示
std::cout<<x;
return 0; //返回0
} //程序结束
2:
#include <iostream>
int main()
{
std::cout<<"学生成绩表\n";
std::cout<<"一班的瓜娃子成绩表A: \t"<<100; // /t 是对其命令 制表符 让后面的数据输出对其
std::cout<<std::endl; //endl 是立即刷新缓存区 和\n 差不多 <<100 是现实100
std::cout<<"一班的瓜娃子成绩表B: \t"<<90+1; // 运算符 90+1=?
std::cout<<std::endl;
std::cout<<"一班的瓜娃子成绩表C: \t"<<(float)5/8; //5除以8 除下来非整数。所以 要转换为浮点数 float
std::cout<<std::endl;
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x; // 考虑到有些朋友的机器是运行完控制台窗口自动关闭 所以这里加个案任意键关闭
return 0;
}
int main()
{
std::cout<<"学生成绩表\n";
std::cout<<"一班的瓜娃子成绩表A: \t"<<100; // /t 是对其命令 制表符 让后面的数据输出对其
std::cout<<std::endl; //endl 是立即刷新缓存区 和\n 差不多 <<100 是现实100
std::cout<<"一班的瓜娃子成绩表B: \t"<<90+1; // 运算符 90+1=?
std::cout<<std::endl;
std::cout<<"一班的瓜娃子成绩表C: \t"<<(float)5/8; //5除以8 除下来非整数。所以 要转换为浮点数 float
std::cout<<std::endl;
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x; // 考虑到有些朋友的机器是运行完控制台窗口自动关闭 所以这里加个案任意键关闭
return 0;
}
3:
STD 是名称空间标识符 C++标准库中的函数或者对象都是命令空间STD定义的
cout 是标准库中所提供的一个对象 而标准库在名字空间中被指定为STD 所以 在使用cout 的时候要在前面加上std:: 这样编译器就会明白我们调用的COUT是名字空间STD中的 COUT
STD 只是在标准库中 比如 iostream 才用到 如果非标准库 比如 iostream.h 就不需要了 直接 cout<< 就可以了 或者在 包含下面 输入一行 using namespace std; 也可以 就是告诉编译器 包含 std的函数或者对象
4:
也可以使用 using std::cout; 这样可以避免命名重复 因为不同的名字在不同的名字空间里面,我们将他释放出来,很可能不小心使用错误的库数中的对象
5:
#include <iostream>
namespace a //定义名词空间A
{
int b=1;
}
namespace c
{
int b=2;
}
int main()
{
//namespace a
//namespace c
//std::cout<<b; 上面三条命令 就是错误的 编译器就不知道输出哪个B 会报错
int b=9;
std::cout<<b<<" "<<a::b<<" "<<c::b<<std::endl; // 显示和输出 b 和名次空间 a 以及c 的值 就是 9 1 2 “ ” 为空格
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x;
return 0;
}
namespace a //定义名词空间A
{
int b=1;
}
namespace c
{
int b=2;
}
int main()
{
//namespace a
//namespace c
//std::cout<<b; 上面三条命令 就是错误的 编译器就不知道输出哪个B 会报错
int b=9;
std::cout<<b<<" "<<a::b<<" "<<c::b<<std::endl; // 显示和输出 b 和名次空间 a 以及c 的值 就是 9 1 2 “ ” 为空格
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x;
return 0;
}
搞清楚名词空间了,就是 说 namespace a 如果要调用这个里面的值 就需要加 a::?<< 输出就可以了
6:
#include <iostream>
using namespace std;
int main()
{
/* 这种注释 是表示 注释从 反斜杠* 到 *反斜杠 结束
可以注释多行语句 */
// 这个只能注释一行
cout<<"我喜欢C++\n";
return 0;
}
using namespace std;
int main()
{
/* 这种注释 是表示 注释从 反斜杠* 到 *反斜杠 结束
可以注释多行语句 */
// 这个只能注释一行
cout<<"我喜欢C++\n";
return 0;
}
7:
#include <iostream>
void show() /* void 定义函数 show 是函数名 show 的() 是该函数说需要的参数
如果为空 说明 该函数不需要参数*/
{ //函数开始
std::cout<<"hello world\n"; //函数所拥有的功能
} //函数结束
int main()
{
show(); //调用函数show 这里无返回值和参数 所以可以直接调用 show 中的内容 。 如果有返回值 就需要 std::cout<< 这样调用
//当函数执行完毕后 才继续执行下面的命令
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x;
}
void show() /* void 定义函数 show 是函数名 show 的() 是该函数说需要的参数
如果为空 说明 该函数不需要参数*/
{ //函数开始
std::cout<<"hello world\n"; //函数所拥有的功能
} //函数结束
int main()
{
show(); //调用函数show 这里无返回值和参数 所以可以直接调用 show 中的内容 。 如果有返回值 就需要 std::cout<< 这样调用
//当函数执行完毕后 才继续执行下面的命令
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x;
}
8:
#include <iostream>
int show(int x,int y) // 定义show 函数返回值为证书并且让他支持参数 可以接受 两个整数型 参数
{
return x+y;
}
int main()
{
int a,b; //连续定义两个变量 a和b 为整数型
std::cout<<"请输入两个整数:";
std::cin>>a;
std::cin>>b;
std::cout<<"a+b的值是:"<<show(a,b); //输出 "" 是字符串 show(a,b) 意思调用 a 和 b的值 并且相加 因为 int show 里面
//已经定义了两个参数 所以我们也要给他两个 整数型的参数 show 里面 是 加的 所以输出来的是 a+b的和
int z;
std::cout<<"\n输入任意键回车关闭窗口\n";
std::cin>>z;
}
int show(int x,int y) // 定义show 函数返回值为证书并且让他支持参数 可以接受 两个整数型 参数
{
return x+y;
}
int main()
{
int a,b; //连续定义两个变量 a和b 为整数型
std::cout<<"请输入两个整数:";
std::cin>>a;
std::cin>>b;
std::cout<<"a+b的值是:"<<show(a,b); //输出 "" 是字符串 show(a,b) 意思调用 a 和 b的值 并且相加 因为 int show 里面
//已经定义了两个参数 所以我们也要给他两个 整数型的参数 show 里面 是 加的 所以输出来的是 a+b的和
int z;
std::cout<<"\n输入任意键回车关闭窗口\n";
std::cin>>z;
}
9:
关于函数定义的说明 int show(int x,int y) 这个是关于到 函数的运行 返回值 比如x+y 这个是整数型 的 所以 返回值必须为整数 int 在后面调用得到时候 show(a,b) 是变量 要配合 前面的使用所以 ab 也必须是整数 当然 你可以直接 输入 show(1,2) 那么就是3
10:
int add(int ,int ); // 此为申明 告诉编译器有这个函数
int main()
{
return 0;
}
int add(int x,int y) //此为定义 用于分配内存空间 三个INT 为 12个字节空间
{
return x+y;
}
int main()
{
return 0;
}
int add(int x,int y) //此为定义 用于分配内存空间 三个INT 为 12个字节空间
{
return x+y;
}
一般情况下都要先声明。象下面 就不好了 会导致无限循环
#include <iostream>
using namespace std;
void a();
void b();
void a()
{
cout<<"此为A函数\n";
b();
}
void b()
{
cout<<"此为B函数\n";
a();
}
int main()
{
a();
b();
return 0;
}
using namespace std;
void a();
void b();
void a()
{
cout<<"此为A函数\n";
b();
}
void b()
{
cout<<"此为B函数\n";
a();
}
int main()
{
a();
b();
return 0;
}
11:
#include <iostream>
using namespace std;
void swap(int ,int );
int main()
{
int x=3,y=4;
cout<<"在main函数中 在调用SWAP函数之前。X的值是:"<<x<<" Y的值是"<<y<<endl;
swap(x,y);
cout<<"在main函数中 在调用SWAP函数之后。X的值是:"<<x<<" Y的值是"<<y<<endl;
return 0;
}
void swap(int x,int y) //交换函数 定义X Y
{
cout<<"在SWAP函数中 在调用SWAP函数之前 X的值是:"<<x<<" Y的值是"<<y<<endl;
int z; //局部变量 只在此函数中有用 过了此函数后 变量将无效。
z=x; // X复制给Z 也就是 z=3 下同
x=y;
y=z;
cout<<"在SWAP函数中 在调用SWAP函数之后 X的值是:"<<x<<" Y的值是"<<y<<endl;
}
/* 最终输出 3 4 调用 后 首先输出 main swap 因为是首个输出命令
3 4 现在开始 swap 函数的输出 因为这里已经开始调用 3 4 因为上面 定义了的
4 3 现在输出4 3 因为通过下面的变量被交换
3 4 这里在执行 SWAP 函数下的 内容 main swap 输出3 4 证明 没有影响到 其他语句
using namespace std;
void swap(int ,int );
int main()
{
int x=3,y=4;
cout<<"在main函数中 在调用SWAP函数之前。X的值是:"<<x<<" Y的值是"<<y<<endl;
swap(x,y);
cout<<"在main函数中 在调用SWAP函数之后。X的值是:"<<x<<" Y的值是"<<y<<endl;
return 0;
}
void swap(int x,int y) //交换函数 定义X Y
{
cout<<"在SWAP函数中 在调用SWAP函数之前 X的值是:"<<x<<" Y的值是"<<y<<endl;
int z; //局部变量 只在此函数中有用 过了此函数后 变量将无效。
z=x; // X复制给Z 也就是 z=3 下同
x=y;
y=z;
cout<<"在SWAP函数中 在调用SWAP函数之后 X的值是:"<<x<<" Y的值是"<<y<<endl;
}
/* 最终输出 3 4 调用 后 首先输出 main swap 因为是首个输出命令
3 4 现在开始 swap 函数的输出 因为这里已经开始调用 3 4 因为上面 定义了的
4 3 现在输出4 3 因为通过下面的变量被交换
3 4 这里在执行 SWAP 函数下的 内容 main swap 输出3 4 证明 没有影响到 其他语句
12:
#include <iostream>
using namespace std;
void swap(int ,int );
int x=4000,y=3000; // 定义全局变量 可以在所有函数中应用
int main()
{
int x=3,y=4;//这里是局部变量 优先级高与全局
cout<<"在main函数中 在调用SWAP函数之前。X的值是:"<<x<<" Y的值是"<<y<<endl;
swap(x,y);
cout<<"在main函数中 在调用SWAP函数之后。X的值是:"<<x<<" Y的值是"<<y<<endl;
return 0;
}
using namespace std;
void swap(int ,int );
int x=4000,y=3000; // 定义全局变量 可以在所有函数中应用
int main()
{
int x=3,y=4;//这里是局部变量 优先级高与全局
cout<<"在main函数中 在调用SWAP函数之前。X的值是:"<<x<<" Y的值是"<<y<<endl;
swap(x,y);
cout<<"在main函数中 在调用SWAP函数之后。X的值是:"<<x<<" Y的值是"<<y<<endl;
return 0;
}
13:
数据类型
可以分为 常量和变量 变量是可以改变的量 常量是不能改变的。
变量 可以包括 INT 整数型 BOOL 布尔型 真假 char 字符型 双字符型 wchar_t 单精度浮点型 float 双精度浮点型 double
14:
#include <iostream>
using namespace std;
int main()
{
int x; //定义一个变量 但是并没有赋值
x=1; //这里才是赋值
int y=2;//这里是初始化 变量Y 为2 不是赋值
return 0;
}
//变量可以这样说,变量是存储数据的地方,是内存中的地址,在这个地址中。我们可以对他读取和存储
using namespace std;
int main()
{
int x; //定义一个变量 但是并没有赋值
x=1; //这里才是赋值
int y=2;//这里是初始化 变量Y 为2 不是赋值
return 0;
}
//变量可以这样说,变量是存储数据的地方,是内存中的地址,在这个地址中。我们可以对他读取和存储
15:
变量和数据如何存储在内存上? 百度下 内存可以看做是一个一个格子,而每个格子都有一个编号,这些编号就是内存地址。。。。等等
由于内存的种种特性 所以我们要定义变量的类型 这样 编译器才会给我们变量分配内存空间 然后做好放置这种变量的准备 每个格子是一个字节 如果我们定义的变量类型占用两个字节 就需要两个字节 也就是两个格子
深入数据类型 了解 位 和 字节
16:
#include <iostream>
using namespace std;
int main()
{
bool check; //定义一个布尔型变量
check=true; //让他表示为真,也可以是 false 假。 对应 1真 0假
if (check=true)//如果check是真
{
cout<<"HELLO WORLD \n";//输出
}
return 0;
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x;
}
17:
using namespace std;
int main()
{
bool check; //定义一个布尔型变量
check=true; //让他表示为真,也可以是 false 假。 对应 1真 0假
if (check=true)//如果check是真
{
cout<<"HELLO WORLD \n";//输出
}
return 0;
int x;
std::cout<<"输入任意键回车关闭窗口\n";
std::cin>>x;
}
17:
#include <iostream>
using namespace std;
int main()
{
char ch; //定义一个字符型变量 ch
ch='0'; // 字符型变量要用 '' 单引号 括起来
cout<<ch<<endl;
cout<<(int)ch; //转换字符型变量为 int 0的ascll 码 就是48
for(int i=32;i<128;i++) // 下面是循环语句 表示 i=32 如果I小于128的时候 就停止 否则 i一直加1
{
cout<<(char)i;//这里是输出 ASCLL玛值 ,也就是一直循环输出32 到 128 ASCLL玛对应的字符
}
char ax;
ax='\t' //特殊字符:包括 \t 对其相当于TAB建 \r 回车键 不等于换行 \又称为 转移字符
return 0;
}
//关于字符型变量输出 的转换 比如 ASCLL 可以去百科查看和研究。
/* 特殊字符 \a 铃声 \b 回退 \f 换行 以下不写斜杠 v 垂直制表 000 八进制 xhhh 十六进制
using namespace std;
int main()
{
char ch; //定义一个字符型变量 ch
ch='0'; // 字符型变量要用 '' 单引号 括起来
cout<<ch<<endl;
cout<<(int)ch; //转换字符型变量为 int 0的ascll 码 就是48
for(int i=32;i<128;i++) // 下面是循环语句 表示 i=32 如果I小于128的时候 就停止 否则 i一直加1
{
cout<<(char)i;//这里是输出 ASCLL玛值 ,也就是一直循环输出32 到 128 ASCLL玛对应的字符
}
char ax;
ax='\t' //特殊字符:包括 \t 对其相当于TAB建 \r 回车键 不等于换行 \又称为 转移字符
return 0;
}
//关于字符型变量输出 的转换 比如 ASCLL 可以去百科查看和研究。
/* 特殊字符 \a 铃声 \b 回退 \f 换行 以下不写斜杠 v 垂直制表 000 八进制 xhhh 十六进制
18:
#include <iostream>
#include <locale> //调用一个头文件用于支持 locale
using namespace std;
int main()
{
setlocale(LC_ALL,"chs");//设置 本地机器 语言 日期 货币格式等 lc_all为 所有 chs 中国
wchar_t ch[]=L"中";// 定义 双字节型 wchar_t 因为 字节型 只能输出一个字节 而中文 韩文 日文 等都是双字节型 所以要这样定义
wcout<<ch; //上面的 [] 是数组的意思 L 表示 告诉编译器 分配两个字节的内存空间 cout 不支持输出双字节 所有用 wcout来表示
return 0;
}
#include <locale> //调用一个头文件用于支持 locale
using namespace std;
int main()
{
setlocale(LC_ALL,"chs");//设置 本地机器 语言 日期 货币格式等 lc_all为 所有 chs 中国
wchar_t ch[]=L"中";// 定义 双字节型 wchar_t 因为 字节型 只能输出一个字节 而中文 韩文 日文 等都是双字节型 所以要这样定义
wcout<<ch; //上面的 [] 是数组的意思 L 表示 告诉编译器 分配两个字节的内存空间 cout 不支持输出双字节 所有用 wcout来表示
return 0;
}
19
#include <iostream>
using namespace std;
int main()
{
cout<<"int:"<<sizeof(int)<<endl; //sizeof 函数是输出INT 这个类型的长度 为4个字节 所以是4
cout<<"short:"<<sizeof(short)<<endl; // short 为短整型 占用空间两个字节 输出2
cout<<"long:"<<sizeof(long)<<endl; // long长整形 输出4 long 和int 在32位系统中没区别 16位 int 为2
//上面是有符号位 有符号位可以表示正整数和负整数shot int他的取自最大范围为-32768- 32767 因为 最高位为填充为 其余 15位为1 二转十的概念
// int 为-2147483648 - 2147483647
unsigned short a;
cout<<"short:"<<sizeof(short)<<endl; // 无符号为 短整型 只能输出 正整数 // 因为 正整数不需要 填充 所以 16个1 为 65535
return 0;
}
//这些关系到补码 和进制 之间的转换。 下图 是占用表:
using namespace std;
int main()
{
cout<<"int:"<<sizeof(int)<<endl; //sizeof 函数是输出INT 这个类型的长度 为4个字节 所以是4
cout<<"short:"<<sizeof(short)<<endl; // short 为短整型 占用空间两个字节 输出2
cout<<"long:"<<sizeof(long)<<endl; // long长整形 输出4 long 和int 在32位系统中没区别 16位 int 为2
//上面是有符号位 有符号位可以表示正整数和负整数shot int他的取自最大范围为-32768- 32767 因为 最高位为填充为 其余 15位为1 二转十的概念
// int 为-2147483648 - 2147483647
unsigned short a;
cout<<"short:"<<sizeof(short)<<endl; // 无符号为 短整型 只能输出 正整数 // 因为 正整数不需要 填充 所以 16个1 为 65535
return 0;
}
//这些关系到补码 和进制 之间的转换。 下图 是占用表: