学习整理:
常量: const关键字
变量的储存类型:
1、extern 只声明不定义变量,可用于访问全局变量 如:extern int var; (前提有var这个全局变量)
2、static c++中全局静态变量不能被别的文件访问,类中跟java一样 类名.var
3、register 只能局部变量或函数的形式参数(形式参数?)
4、auto 动态存储 全局变量静态变量不能使用
数据类型:
c++中整型类型字节长跟计算机位数有关
[singned](可不写)有符号类型 Unsigned 无符合类型
网络摘抄:
C/C++仅仅定义了这些基本数据类型之间的关系,并没有定义严格定义它们的字长。在不同的平台上,根据编译器不同的实现,它们的字长如下表所示:
数据类型 |
LP64 |
ILP64 |
LLP64 |
ILP32 |
LP32 |
char |
8 |
8 |
8 |
8 |
8 |
short |
16 |
16 |
16 |
16 |
16 |
_int32 |
N/A |
32 |
N/A |
N/A |
N/A |
int |
32 |
64 |
32 |
32 |
16 |
long |
64 |
64 |
32 |
32 |
32 |
long long |
N/A |
N/A |
64 |
N/A |
N/A |
pointer |
64 |
64 |
64 |
32 |
32 |
在这张表中,LP64,ILP64,LLP64是64位平台上的字长模型,ILP32和LP32是32位平台上的字长模型。
LP64意思是long和pointer是64位,ILP64指 int,long,pointer是64位,LLP指long long和pointer是32-bit的。ILP32指int,long和pointer是32位的,LP32指long和pointer是32位的。
32位Windows采用的是ILP32数据模型,64位Windows采用的是LLP64数据模型。
所以,Windows上的32位程序设计和64位程序设计最大的不同(也就是IP32和LLP64的不同),就在于指针的长度不同??由32位变成了64位。
Win32 API在很多情况下,都需要将整数转换成指针或者相反。在 32 位的硬件上不会有问题,其中指针的大小和整数的大小是相同的,但在 64 位的硬件上却完全不一样。
为此M$搞了个所谓的“多态类型”:
对于特定的精度,您可以使用固定精度的数据类型。不管处理器的词大小如何,它们的大小都是一致的。大多数这些类型都在它们的名称中包含精度,可以从下面的表中看出:
表 1. 固定精度的数据类型 | |
类型 | 定义 |
DWORD32 |
32 位无符号整数 |
DWORD64 |
64 位无符号整数 |
INT32 |
32 位有符号整数 |
INT64 |
64 位有符号整数 |
LONG32 |
32 位有符号整数 |
LONG64 |
64 位有符号整数 |
UINT32 |
无符号 INT32 |
UINT64 |
无符号 INT64 |
ULONG32 |
无符号 LONG32 |
ULONG64 |
无符号 LONG64 |
此外,当您需要数据类型的精度随着处理器词大小变化时,请使用指针精度数据类型。这些类型又称为“多态”数据类型。这些类型通常以 _PTR 后缀结尾,如下面的表格所示:
表 2. 指针精度的数据类型 | |
类型 | 定义 |
DWORD_PTR |
指针精度的无符号长类型 |
HALF_PTR |
指针大小的一半。用于包含一个指针和两个小型字段的结构中 |
INT_PTR |
指针精度的有符号整型 |
LONG_PTR |
指针精度的有符号长类型 |
SIZE_T |
指针可以引用的最大字节数。用于必须跨指针的整个范围的计数 |
SSIZE_T |
有符号 SIZE_T |
UHALF_PTR |
无符号 HALF_PTR |
UINT_PTR |
无符号 INT_PTR |
ULONG_PTR |
无符号 LONG_PTR |
LPARAM |
与 LONG_PTR 为同义词,(在WTypes.h 中定义) |
WPARAM |
与 UINT_PTR 为同义词,(在 WTypes.h 中定义) |
通过整数参数传递参数或上下文信息的所有 Win32 API 都更改为使用这些新的类型。
此外,还出现了定长指针:POINTER_32和POINTER_64:
#define POINTER_32 __ptr32
#define POINTER_64 __ptr64
PS:M$DN中说是在Basetsd.h中定义的,但实际上是在WinNT.h中定义的。
枚举类型:
enum name{A=1,B,C,D};
void demo(name n){ if(n == A) ; }
使用:name n = A; demo(n); // 错误:name(1) 不能转为枚举类型 name(name.A)?
结构体类型:
关键字struct —— struct name{}
typedef 自定义类型 如: typedef int UU;
指针:
int* i;
int b = 10;
i = &b;
详细:http://www.cnblogs.com/ggjucheng/archive/2011/12/13/2286391.html
相关推荐
这是一份在大学期间学习整理的c++基础上机试题,里边有66个cpp文件,包括循环语句、条件语句、函数等知识点的实际应用。
c++二级公共基础知识考点归纳整理,对打算考C++二级的同学很有帮助
C++基础知识,自己整理的部分,相互学习
该文档对C++基础知识进行了详细归纳整理,相信会帮朋友们温故知新的。大家都加油
自己整理c++基础知识.doc
该文档对C++基础知识做了全面详细的归纳讲解,希望大家多多浏览,打牢基础,C++路上越走越稳
C++基础知识框图,个人必备基础知识,用于复习,备考,找工作等等都有帮助,帮助萌新梳理知识点,帮助大佬温习知识点,本人费心整理的,希望大家喜欢。
最近在复习C++只是 看到bilibili上传智播客老师讲的挺好,看了一遍视频,花了好多时间,过段时间发现有忘了,再去看视频也不知道看哪一集好,就花了点时间整理了一下老师的笔记,有需要的可以拿走
适合模糊者看到完美笔记,C++基础知识整理,欢迎观看,
C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案.docx c++笔试面试宝典.docx C++笔试面试题带答案.docx c++笔试题汇总.pdf C++经典面试题库 附带参考答案....
C++网络编程基础socket[整理].pdf
个人整理。 C++基础知识 数组与指针在编译时的区别 VC下bool与BOOL的区别 C++的内存分配
C++大学教程 第二版 C++大学教程 C经典教程.chm C库函数大全清华整理 C入门经典 谭浩强 CC++_语言参考(中文)
整理了之前接触学的搜集到的C++部分知识集合,仅供自己学习使用,下载慎入。
适合有C语言基础的同学,其中包含搜集整理的c与c语言的对比。
自己整理的笔记,从window平台 linux平台多个角度分析,代码在windowsxp 和 fc5上测试通过
正式用C++编写的第一个正儿八经的小程序
下面我们从一个最简单的程序入手看一个C++程序的组成结构。上面左侧显示了我们的第一个程序的源代码,代码文件名称为hellowworld.cpp。右边显示了程序被编译执行后的输出结果。编辑和编译一个程序的方法取决于你用的...
简单基础C++实例,从书上整理,都验证过
C++基础的学习笔记(其中的代码源件可私信留言) C++中的空头程序 使用C++书写hello world 学习变量 学习常量 标识符命名规则 数据类型 运算符 程序流程结构 数组 函数 指针 结构体