c++语法笔记(一)

 

C++ 语法

数据类型:

Type

Size

数值范围

无值型void

0 byte

无值域

布尔型bool    

1 byte

true   false

有符号短整型short [int] /signed short [int]

2 byte

-32768~32767

无符号短整型unsigned short [int]  

2 byte

0~65535

有符号整型int /signed [int]

4 byte

-2147483648~2147483647

无符号整型unsigned [int]

4 byte

0~4294967295

有符号长整型long [int]/signed long [int]

4 byte

-2147483648~2147483647

无符号长整型unsigned long [int]

4 byte

0~4294967295

long long

8 byte

0~18446744073709552000

有符号字符型char/signed char

1 byte

-128~127

无符号字符型unsigned char

1 byte

0~255

宽字符型wchar_t (unsigned short.)

2 byte

0~65535

单精度浮点型float 

4 byte

-3.4E-38~3.4E+38

双精度浮点型double

8 byte

1.7E-308~1.7E+308

long double

8 byte

 

 

1sprintf

函数功能:

把格式化的数据写入某个字符串缓冲区。

头文件:    stdio.h

函数原型:

int sprintf( char *buffer, const char*format, [ argument] … );

 

2、字符数组,末尾不自动添加\0, 而字符串末尾自动添加\0

定义字符串有两种方法:
一、字符串指针 char *string="abcde";
二、一维字符数组。例如:char string[10];string="abcde";
用字符数组定义注意了,数组长度为n,但是字符个数只能为n-1,就是上面说的计算机默认加了\0占了一个,否则会溢出。
 

3'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。在数值类型里就代表数字0

Char [5]= ‘\0’ 或者char[5] = 0;

 

 

 

4sizeof(x)可以用来定义数组维数的原因
char str[20]="0123456789";
int a=strlen(str);//a=10;
int b=sizeof(str); //
b=20;

 

5、关于指针,delete是释放内存空间,赋值为NULL是让它不指向任何地方。

对一个空指针delete 是合法的,对非空指针,连续delete可能会delete不是自己的内存,出错。

 

6、大部分编译程序在编译的时候就把sizeof计算过了是类型或是变量的长度这就是

 

双冒号(::)用法

(1)表示“域操作符”
例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时, 
就要写成void A::f(),表示这个f()函数是类A的成员函数。

(2)直接用在全局函数前,表示是全局函数 
例:在VC里,你可以在调用API 函数里,在API函数名前加::
【存在和API同名的函数,需要在函数调用前注明命名空间,全局(API)的,需要加::,否则类名::fun.】


(3)表示引用成员函数及变量,作用域成员运算符

例:System::Math::Sqrt() 相当于System.Math.Sqrt()

 

命名空间 【程序中变量和函数的定义空间,通过声明不同的命名空间,调用不同地方定义的函数或变量】 using   namespace    A,B,std

通过使用using namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的.这样一来就不会引起不必要的冲突了.

 

命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。

 由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:std::cout << std::hex << 3.4 << std::endl;

2、使用using关键字。using std::cout; using std::endl; using std::cin; 以上程序可以写成cout << std::hex << 3.4 << endl;

3、最方便的就是使用usingnamespace std; 例如: using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:cout <<hex << 3.4 << endl;因为标准库非常的庞大,所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。所以就有了<iostream.h>和<iostream>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"

 

MFC中并没有使用命名空间,但是在.NET框架、MC++和C++/CLI中,都大量使用了命名空间。

 

 

SuspendThread

该函数用于挂起线程.语法格式如下:

DWORDSuspendThread(HANDLE hThread);

hThread: 表示线程句柄

返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF

ResumeThread

该函数用于煎炒线程挂起的次数,如果线程挂起的次数为0,将唤醒线程.语法格式如下:

DWORDResumeThread(HANDLE hThread);

hThread: 表示线程句柄

返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF

ExitThread

该函数用于结束当前线程.语法格式如下:

VOIDExitThread(DWORD dwExitCode);

dwExitCode:表示线程退出代码

TerminateThread

该函数用于强制终止线程的执行.语法格式如下:

BOOLTerminateThread(HANDLE hThread, DWORD dwExitCode);

hThread: 表示待终止的线程句柄

dwExitCode:表示线程退出代码

 

 

win32console application Win32 Application

1Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。Win32 Application是为你开发windows应用程序所准备的,程序以WinMain()为入口,#include<windows.h>,能够使用win32 API函数。 
2)而Win32 Console Applicationwin32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,它与纯dos程序区别是:它是32位的;或者叫CUI(CharacterUser Interface字符用户接口)console程序main()为入口,不能使用win32 API函数。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值