C++学习第2讲:变量的定义与作用域[讲义]

知识点:
1、变量的声明
2、变量的作用域与初始化

1)我们先回忆一下第1课,对C++程序有个基本的了解:
   A、包含所需的头文件
   B、不可缺少的入口函数:main()函数
   C、程序是由语句构成的,在C++里,区分语句的是句尾的“;”分号
   D、程序是用来处理数据的,所以必须定义一些数据
   E、给程序加上必要的注释

C++学习第3讲:复合类型[讲义]

要点:
1、指针
2、数组与字符串

1)指针
  对于类型T,T*是“到T的指针”类型。
  说白了讲,指针里保留的是一个32位的地址值,这个地址指向了一个内存区域,至于如何解释这个内存区域,则是由其类型决定。

  如:char c='a';
      char* p=&c;

通过一个完整的示例来看一下:

一个算法修正:百钱买百鸡问题

问题是:
公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

以下是 安全矩阵站长 fleshwound 的代码:

C++/C一些类型的取值范围

呵呵,时间长了,有些实在是记不住了,就把一些不常用的记在这里吧:

long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615


我的电脑对__int128不支持,这个可能是预留给将来的吧:

C++学习序章:开篇说明及第一个程序(helloworld)

1、开篇说明:
本系列只是我个人对VC/C/C++学习的一个回顾,用以加深自己的印象,所讲述的只是自己的一些理解以及自己在写东西时的一些所得。可能是东一粼西一爪的,让你不着边际!但主体还是从易到能的一个过程,不过最好还是希望大家结合一本教材从头来过的好,呵呵…………
配合的教材,大家可以到网上搜索,相信这方面的资料还是很多的。
具体的,我在这里就不推荐了!

2、所需工具:
我用的是VS 2008及DevC++,大家按自己的条件自行选择,因为在讲C/C++时,我多数是在命令下行采用命令来编译的,如本讲的:

cl HelloWorld /EHsc

可能在后期讲到VC的工程时,才会用到IDE环境

一个螺旋排列的数组实现

要求如下:
给定一个2维数组Array[row][col],让其呈螺纹状排列。
如:
数组:Array[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
让其重新排序如下:

E:\Programming\c_cpp>HelixArray
请输入螺旋数组的维数(2维:行--列):4 4
螺旋数组如下:
1       2       3       4
12      13      14      5
11      16      15      6
10      9       8       7

CrackMe 九的设计思路

这个CM主要是来验证一下自己的思路!
[color=#FF0000]1、程序里可能出现明码,但绝对不允许成堆的出现!
2、螺旋数组能否更好的运用在CM中??[/color]

这个CM主要还是验证自己的螺旋数组的,游戏的气味更多一些,呵呵!

#pragma用法大全[转载]

[color=#FF0000]文章有些长,里面提到的知识点,有用过的,但太多数还没有接触过!转载到这里,以备参考![/color]
转载自:[url=http://www.ccg.org.cn/bbs/viewthread.php?tid=984&highlight=]http://www.ccg.org.cn/bbs/viewthread.php?tid=984&highlight=[/url]

#pragma用法大全
C和C++的每个实现对它的主机或操作系统都支持一些独有的特征。
例如, 某些程序须对存放数据的存储器区域进行精确的控制,或必须控制特定函数接受参量的方式。
#pragma指令对每个编译器给出了一个方法,在保持与C和C+ +语言完全兼容的情况下,给出主机或操作系统专有的特征。
依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。

让程序支持拖拽功能

这里主要是三个函数一个消息。三个函数分别是:
[color=#FF0000]VOID DragAcceptFiles(HWND hWnd,BOOL fAccept);
UINT DragQueryFile(HDROP hDrop,UINT iFile,LPTSTR lpszFile,UINT cch);
VOID DragFinish(HDROP hDrop);[/color]

一个消息是:
[color=#FF0000]WM_DROPFILES
SendMessage( hWndControl, WM_DROPFILES, wParam,  lParam ); [/color]
其中:
wParam的值为(HDROP),而lParam的值则必须为0!