C++学习
机器语言==》面向过程的==》面向对象的。
重载:函数名相同,参数不一样(类型,个数);
重载不是面向对象的特征,只是简化编程互操作的一种方案;
注意:对函数(方法)重载要谨慎、注意操作符重载和覆盖;
复杂数据类型:
数组、指针、结构、类
数组:把同类型的值存储在同一变量名下;仍需要被声明为某一特定类型:float,char, int————
注意:c语言中我们一般把字符串存储在一个字符数组中,但C++中我们一般使用一个对象string。
对齐问题:32位系统是四字节,64位是8字节。有内存对齐、文件对齐。
指针是一个用来存放地址的变量 type*pointerName;故可以把地址放在指针变量里。
星号的用途:第一种是用于创建指针,第二种是对指针进行解引用。
C++支持无类型指针void * vPpinter;解引用之前必须先转换为一种适当的数据类型。
指针和数组:
数组名是数组首地址。
思考:
#include <iostream> using namespace std; int main() { const unsigned short ITEM = 5; int intArray[ITEM] = {1,2,3,4,5}; char charArray[ITEM] = {'a','s','d','f','g'}; int *intPtr = intArray; char *charPtr = charArray; cout << "整形" << endl; for( int i = 0; i < ITEM; i++) { cout << *intPtr << " at " << reinterpret_cast<unsigned long>(intPtr) << endl; intPtr++; } for( int i = 0; i < ITEM; i++) { cout << *intPtr << " at " << intPtr << endl; intPtr++; } cout<< "字符型" << endl; for( int i = 0; i < ITEM; i++) { cout << *charPtr << " at " << reinterpret_cast<unsigned long>(charPtr) << endl; charPtr++; } for( int i = 0; i < ITEM; i++) { cout << *charPtr << " at " << charPtr << endl; charPtr++; } return 0; }
字符和整形为啥输出结果有差异:reinterpret_cast<unsigned long>()带来的影响
?
posted on 2015-03-18 16:59 OrdinaryMiracle 阅读(411) 评论(0) 编辑 收藏 举报