C++学习笔记摘录一Word下载.docx
《C++学习笔记摘录一Word下载.docx》由会员分享,可在线阅读,更多相关《C++学习笔记摘录一Word下载.docx(34页珍藏版)》请在冰点文库上搜索。
std:
endl;
//endl是立即刷新缓存区和\n差不多<
100是现实100
一班的瓜娃子成绩表B:
90+1;
//运算符90+1=?
一班的瓜娃子成绩表C:
(float)5/8;
//5除以8除下来非整数。
所以要转换为浮点数float
输入任意键回车关闭窗口\n"
//考虑到有些朋友的机器是运行完控制台窗口自动关闭所以这里加个案任意键关闭
}
3:
STD是名称空间标识符C++标准库中的函数或者对象都是命令空间STD定义的
cout是标准库中所提供的一个对象而标准库在名字空间中被指定为STD所以在使用cout的时候要在前面加上std:
这样编译器就会明白我们调用的COUT是名字空间STD中的COUT
STD只是在标准库中比如iostream才用到如果非标准库比如iostream.h就不需要了直接cout<
就可以了或者在包含下面输入一行usingnamespacestd;
也可以就是告诉编译器包含std的函数或者对象
4:
也可以使用usingstd:
cout;
这样可以避免命名重复因为不同的名字在不同的名字空间里面,我们将他释放出来,很可能不小心使用错误的库数中的对象
5:
namespacea//定义名词空间A
intb=1;
namespacec
intb=2;
//namespacea
//namespacec
//std:
b;
上面三条命令就是错误的编译器就不知道输出哪个B会报错
intb=9;
b<
"
a:
c:
//显示和输出b和名次空间a以及c的值就是912“”为空格
搞清楚名词空间了,就是说namespacea如果要调用这个里面的值就需要加a:
?
输出就可以了
6:
usingnamespacestd;
/*这种注释是表示注释从反斜杠*到*反斜杠结束
可以注释多行语句*/
//这个只能注释一行
cout<
7:
voidshow()/*void定义函数show是函数名show的()是该函数说需要的参数如果为空说明该函数不需要参数*/
{//函数开始
helloworld\n"
//函数所拥有的功能
}//函数结束
show();
//无返回值和参数可以直接调用show中的内容。
如果有返回值就需要std:
这样调用
//当函数执行完毕后才继续执行下面的命令
8:
intshow(intx,inty)//定义show函数返回值为证书并且让他支持参数可以接受两个整数型参数
returnx+y;
inta,b;
//连续定义两个变量a和b为整数型
请输入两个整数:
a;
a+b的值是:
show(a,b);
//输出"
是字符串show(a,b)意思调用a和b的值并且相加因为intshow里面
//已经定义了两个参数所以我们也要给他两个整数型的参数show里面是加的所以输出来的是a+b的和
intz;
\n输入任意键回车关闭窗口\n"
z;
9:
关于函数定义的说明intshow(intx,inty)这个是关于到函数的运行返回值比如x+y这个是整数型的所以返回值必须为整数int在后面调用得到时候show(a,b)是变量要配合前面的使用所以ab也必须是整数当然你可以直接输入show(1,2)那么就是3
10:
intadd(int,int);
//此为申明告诉编译器有这个函数
intadd(intx,inty)//此为定义用于分配内存空间三个INT为12个字节空间
一般情况下都要先声明。
象下面就不好了会导致无限循环
voida();
voidb();
voida()
此为A函数\n"
b();
voidb()
此为B函数\n"
a();
11:
voidswap(int,int);
intx=3,y=4;
在main函数中在调用SWAP函数之前。
X的值是:
x<
Y的值是"
y<
swap(x,y);
在main函数中在调用SWAP函数之后。
voidswap(intx,inty)//交换函数定义XY
在SWAP函数中在调用SWAP函数之前X的值是:
//局部变量只在此函数中有用过了此函数后变量将无效。
z=x;
//X复制给Z也就是z=3下同
x=y;
y=z;
在SWAP函数中在调用SWAP函数之后X的值是:
/*最终输出34调用后首先输出mainswap因为是首个输出命令
34现在开始swap函数的输出因为这里已经开始调用34因为上面定义了的
43现在输出43因为通过下面的变量被交换
34这里在执行SWAP函数下的内容mainswap输出34证明没有影响到其他语句
12:
intx=4000,y=3000;
//定义全局变量可以在所有函数中应用
//这里是局部变量优先级高与全局
13:
数据类型
可以分为常量和变量变量是可以改变的量常量是不能改变的。
变量可以包括INT整数型BOOL布尔型真假char字符型双字符型wchar_t单精度浮点型float双精度浮点型double
14:
//定义一个变量但是并没有赋值
x=1;
//这里才是赋值
inty=2;
//这里是初始化变量Y为2不是赋值
//变量可以这样说,变量是存储数据的地方,是内存中的地址,在这个地址中。
我们可以对他读取和存储
15:
变量和数据如何存储在内存上?
XX下内存可以看做是一个一个格子,而每个格子都有一个编号,这些编号就是内存地址。
。
等等
由于内存的种种特性所以我们要定义变量的类型这样编译器才会给我们变量分配内存空间然后做好放置这种变量的准备每个格子是一个字节如果我们定义的变量类型占用两个字节就需要两个字节也就是两个格子
深入数据类型了解位和字节
16:
boolcheck;
//定义一个布尔型变量
check=true;
//让他表示为真,也可以是false假。
对应1真0假
if(check=true)//如果check是真
{
HELLOWORLD\n"
//输出
}
17:
charch;
//定义一个字符型变量ch
ch='
0'
//字符型变量要用'
'
单引号括起来
ch<
(int)ch;
//转换字符型变量为int0的ascll码就是48
for(inti=32;
i<
128;
i++)//下面是循环语句表示i=32如果I小于128的时候就停止否则i一直加1
(char)i;
//这里是输出ASCLL玛值,也就是一直循环输出32到128ASCLL玛对应的字符
charax;
ax='
\t'
//特殊字符:
包括\t对其相当于TAB建\r回车键不等于换行\又称为转移字符
//关于字符型变量输出的转换比如ASCLL可以去百科查看和研究。
/*特殊字符\a铃声\b回退\f换行以下不写斜杠v垂直制表000八进制xhhh十六进制
18:
locale>
//调用一个头文件用于支持locale
setlocale(LC_ALL,"
chs"
);
//设置本地机器语言日期货币格式等lc_all为所有chs中国
wchar_tch[]=L"
中"
//定义双字节型wchar_t因为字节型只能输出一个字节而中文韩文日文等都是双字节型所以要这样定义
wcout<
ch;
//上面的[]是数组的意思L表示告诉编译器分配两个字节的内存空间cout不支持输出双字节所有用wcout来表示
19
int:
sizeof(int)<
//sizeof函数是输出INT这个类型的长度为4个字节所以是4
short:
sizeof(short)<
//short为短整型占用空间两个字节输出2
long:
sizeof(long)<
//long长整形输出4long和int在32位系统中没区别16位int为2
//上面是有符号位有符号位可以表示正整数和负整数shotint他的取自最大范围为-32768-32767因为最高位为填充为其余15位为1二转十的概念
//int为-2147483648-2147483647
unsignedshorta;
//无符号为短整型只能输出正整数//因为正整数不需要填充所以16个1为65535
//这些关系到补码和进制之间的转换。
下图是占用表:
20:
/*运算:
计算机运算的时候全部以二进制运行比如
1+1就是00000001+00000001那么就等于00000010因为进制运算1+1=22不是二进制所以要补1就是前面那个数了
但是计算机不识别减法所以要这样表示2+(-1)那么就是0000001010000000因为最高位为符号号1表示负数0表示整数
而这样运算的结果不对所以要用补码补码分两步走一全部翻转所以是01111111最后添加一个1就是11111111所以就是
00000010+11111111=0000001就是1了
这就是计算机中的进制运算也是补码的作用
*/
21:
inta=-1;
unsignedintb=-2;
//可以缩写为unsignedb
shortc=-3;
longd=-4;
unsignedlonge;
e=a+b+c+d;
//让abcd加起来并且赋值给e
e:
e<
\n"
a<
b:
c<
//以上语句输出每个的值由于unsignedb是无符号所以无法输出-2那么他的值将是一串数字把他转成二进制在进行
//反转和添加补码就可以得出二进制的结果把他转成十进制就是-2大家可以自己算算其他结果一样e的结果和上面原理相同
//-10的结果转换下就知道了
//下面为变量溢出
shortf=32767;
//定义短变量最大的值
shortg;
g=f+1;
//g+1就是溢出
g:
g<
f:
f<
//当你看到结果是-32768的时候使用进制转换就明白了32767的二进制位15个1
//因为最高位问0表示正数被忽略了。
把他加1他最高位为1其他全部01是负数而-32768转成二进制后要选中
//单字因为一个字节占用两个空间把他在转换后自己都明白了吧。
所以注意超出最大范围的复制不会报错所以一定要
//记住上面的一张表不要超出范围当溢出后就又从0开始了
22:
iomanip>
//包含头文件问设置精确函数引用
/*float计算出来的数字为2X2的23次方8388608.可以表示八百多万如果有负数为除二这个只是他的最大表示位数。
取出在十进制中占多少位可以用计算机科学计算LOG能取出是6.9也就是可以表示的十进制为6到7位
取值范围和有效数字是不同的取值范围可以很大但不一定每一位上的数值都是精确数字假如想每一位都精确就要在
6-7位之间
*/
floata;
//定义一个A的浮点型变量
a=12.12345601234661;
//a的值为这么多
//输出A可以看到最多输出6位因为他的有效数字就是6-7位如何要让他全部输出可以
setprecision(15)<
//像这样,这里是设置精确位数也就是现实位数此函数可以显示到15位15也可以自定义输出
//在VC2008中会看到提示warningC4305:
“=”:
从“double”到“float”截断意思是超出范围
//可以用double表示只要把float改成double双精度浮点型因为double可以精确到15-16位长度八个字节64位二进制
//在使用浮点型的时候能使用float就使用因为double要比float多消耗两倍内存而且运算慢
23:
constchara='
s'
//定义一个常量字符串aa为s常量是不可改变的量,所以如果象下面
a='
b'
//那么编译器将会报错errorC3892:
“a”:
不能给常量赋值所以常量可以被初始化但是以后将不能对他进行赋值
//定义一个常量就是在charint等前面加上一个const就是了
24:
enumnum{zero=100,one,two=200,three,four};
//定义一个枚举常量num枚举常量里面包含值
//枚举常量的意思是在包含的数字里面你只要定义一个值比如zero=100那么以后的值是101依次加1
//如果不定义那就是从0开始two开始后是200那么以后就201202一次类推可以看下结果如下:
zero<
\t"
one<
two<
three<
four<
//下面的程序就是利用枚举常量来判断今天是否为上班
enumday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
daytoday;
today=Monday;
if(today==Sunday||today==Saturday)
周末休息\n"
else
上班了\n"
return0;
另外说一点ctrl+f5可以不关闭DOS
25:
//语句什么是语句,语句以分号结束表示一条语句;
这个是一条空语句
x=a+b;
//语句是不区分空格的所以你可以随便敲多少个空格但是不美观,x=a+b的意思是a+b然后把他加起来的值赋给x
//这里就执行了一个语句因为他只有一个;
号
26:
{//块什么是块块是以坐大括号开始右大括号结束里面允许多条语句的就是块如下:
intx,a=1,b=2;
//这里也是可以被执行的。
27:
inta=1,b=2,c=3,x=0;
//表达式:
x=c=a+b;
//这里是一个表达式也是一个语句因为有分号,凡是用于计算值的操作都可以看做是表达式这里是把
//a+b的值加起来赋给c然后在吧c的值赋给x也称为赋值表达式
//x输出3因为赋值过来后的只a+b等于3
//表达式总能返回一个值
28:
inta,x;
a=30;
//这个是赋值运算符他是把30赋值给了a但是你不能把a赋给30比如30=a因为30是个常量是恒定不变的
x=a+1;
//这个是数学运算符a+1加法运算还有-减法*乘法/除法%求模运算符
//下面的例子可以很好的说明求模运算符的作用下面的左右是依次输出0-60的数字当每次可以被6除下后余数
//等于0的时候就换号输出i并且\t制表。
for(inti=0;