C++
基本数据类型分析
auto,register,static,分析
if ,switch,do,while,for分析
goto void extern sizeof分析
const和volatile分析
struct和union分析
enum
typedef分析
数据类型:数据类型可以理解为固定内存大小的别名,数据类型是创建变量的模子
类型的本质:char 1byte short 2byte int 4byte
变量本质:变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。
类型与变量的关系:
1.自定义类型
2.创建变量
auto,static,register分析
C语言中的变量可以有自己的属性,在定义变量的时候可以加上自己的“属性”关键字,“属性”关键字指明变量的特殊意义。
auto 即C语言中局部变量的默认属性,编译器默认所有的局部变量都是auto的。
static关键字指明变量的“静态”属性,static关键字同时具有“作用域限定符”的意义。
static 修饰局部变量存储在程序静态区,static的另一个意义是在文件作用域标示符。
---static修饰的全局变量作用域只是声明的文件中,static修饰的函数作用域只是声明的文件中。
register关键字知名将变量存储于寄存器中,register只是请求寄存器变量,但不一定请求成功
register变量的必须是CPU寄存器可以接受的值,不能用&运算符获取register变量的地址
wchar_t双字节型变量
char型变量可存储一个字节的字符,它用来保存英文字符与标点符号是可以的,但是存储汉字,韩文与日文却不可以,因为汉字,韩文与日文都占据两个字节,所以C++提供了wchar_t类型,也就是双字节类型,又叫宽字符类型。
宽字符的定义: wchar_t wt[] = L "中";
该语句定义了一个wchar_t类型的数组变量wt , 它用来保存中文字符"中",大写字母L告诉编译器为"中" 字分配两个字节的空间。
标准C++的iostream类库包含了可以支持宽字符的类和对象,如wcout对象可以替代cout 对象来执行对宽字符的输出,例程如下:
#include <iostream>
#include <locale>
using namespace std;
int main()
{
setlocale(LC_ALL,"chs");
wchar_t wt[] = L"中";
wcout<<wt;
return 0;
}
程序中定义了一个宽字符类型数组wt,它保存了"中"字,使用wcout替代cout来输出宽字符。由于"中"是个汉字,因此调用setlocale函数将本机的语言设置为中文简体,setlocale函数在头文件locale中定义,因此添加了头文件locale
整型概述
整型变量有好多种,最基本的是int ,它的定义形式如下:
int a;
整型变量的其他类型为无符号型,有符号型,长整型和短整型,以下是它们的定义形式:、
有符号长整型 long int a;
有符号长整型 long a; (简写形式)
有符号短整型 short int a;
有符号短整型 short a; (简写形式)
无符号长整型 unsigned long int a;
无符号长整型 unsigned long a; (简写形式)
无符号短整型 unsigned short int a;
无符号短整型 unsignd short a; (简写形式)
无符号整型 unsigned int a;
无符号整型 unsigned a; (简写形式)
定义无符号整型,有符号整形,长整型和短整型时,可以省略关键字int。
整型int一般占用4个字节,用32(4*8)位二进制数字表示。长整型long一般是32位,而短整型则为16位,老式编译器已经淘汰。
有符号与无符号整型的区别在于有符号可以表示负整数,而无符号整型
整型变量的定义:
C++的变量都必须在定义后才能使用,定义的作用是告诉编译器该变量占用多少字节,以便于分配内存。而赋值则是将数值存储到该内存空间中
#include <iostream>
using namespace std;
int main()
{
int a = -1;
unsigned b = -2;
short c = -3;
long d = -4;
unsigned long e;
e = a + b + c + d;
cout << "a:" << a << "\n" << "b:" << b << "\n" << "c:" << c << "\n" << "d:" << d << "\n" << "e:" << e << endl;
return 0;
}
输出:
a:-1
b:4294967294
c:-3
d:-4
e:4294967286
定义了一个int 型变量a并初始化,它的值为-1,由于int 型变量可以存储负数,因此输出a的值为-1.定义了一个无符号整型变量b并初始化,它的值为-2,由于无符号整型变量不能存储负数,因此输出b的值不是-2,而是4294967294.将其换算成二进制,4294967294的二进制为111111111111111111111111111111110,而该数正式有符号整型数-2的二进制表现形式,
调试界面一闪而过的解决方法:
1、
#include <iostream>
int main()
{
getchar();
return 0;
}
2、
#include <stdlib.h>
int main()
{
systm("pause");//注意:“system(“pause”);”语句会显示"请按任意键继续....."
return 0;
}
C++ 多线程
多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或者多个程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。
基于进程的多任务处理是程序的并发执行。
基于线程的多任务处理是同一程序的片段的并发执行。
多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径。