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++ 多线程

  多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或者多个程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。

  基于进程的多任务处理是程序的并发执行。

  基于线程的多任务处理是同一程序的片段的并发执行。

  多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径。

 

 

posted @ 2020-06-13 10:45  渔阳俊俊  阅读(230)  评论(0编辑  收藏  举报