- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 实句柄和伪句柄
GetCurrentProcess()函数返回的是一个伪句柄,其实就是$FFFFFFFF。“伪句柄”相当于当前进程实句柄的标示。也就是说你在进程中使用这个"伪句柄", 那么程序底层它就知道你要用的是当前进程的句柄,那么它就会去使用当前进程的句柄。从避免了使用实句柄的一些麻烦,如要调用CloseHandle()等。 但是某些时候你需要用到进程的真实句柄,比如你要讲这个进程句柄传给其他进程去使
2009-02-12 15:32:00 1037
原创 指针和数组的区别
#include #include int fact(int *facs) { int i, j = 0; for(i = 1; i { *(facs + j) = i; printf("%d/n", i); printf("%d/n", facs + j); j++; } retu
2008-04-26 18:17:00 531
原创 指针数组为形参时,值得注意的地方
指针数组为形参时,值得注意的地方例1: # include void print(char *a[10]) { char i; while((*++a)[0]!=0) while(i=*++a[0]) printf("a=%d,a[0]=%d,*a[0]=%c/n",a,a[0],i); } void main(){ char *a[10]
2008-03-17 17:51:00 1609
原创 while((c=getchar())!=EOF)的问题
int c;while ( (c = getchar())!= EOF) putchar(c);当输入 123 CTRL+D 并按回车 之后, 我认为结果应是123并马上退出循环,但实际并未退出,若单独输入ctrl+z则马上退出。[/code]原因分析:输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin.get()
2008-03-14 16:43:00 3612 2
原创 idiom
one: /* strcpy: copy t to s; pointer version 3 */ void strcpy(char *s, char *t) { while (*s++ = *t++) ; }two:*p++ = val; /* push val onto stack */val = *--p; /* pop top o
2008-03-09 21:31:00 684
原创 C、C++宏体中出现的#,#@,##
C、C++宏体中出现的#,#@,## 宏体中,#的功能是将其后面的宏参数进行字符串化操作,简单说就 是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。 而##被称为连接符(concatenator),用来将两个Token连接为一个Token。注意这里连接的对象是Token就行,而不一定是宏的变 量。比如你要做一个菜单项命令名和函数指针组成的结构体的数组,并且希望在函数名和菜单项命令
2008-01-16 22:09:00 711
原创 有意思的排序问题
题目如下:有1,2,....一直到n的无序数组,求排序算法,要求时间复杂度为O(n), 空间复杂度为O(1) ,使用交换,而且一次只能交换两个数。#include #include #include void main(void) { int a[] = {2, 4, 1, 3}; int len = sizeof(a)/si
2008-01-12 11:01:00 472
原创 数组、数组名和指针问题
下面程序最终显示结果是什么?#include int main() { int a[5]={1,2,3,4,5}; int *ptr1=(int *)(&a+1); int *ptr2=(int *)((int )a+1); printf("%x,%x",ptr1[-1],*ptr2); return 0; } tc 编译5,200指针的步进
2008-01-11 19:57:00 679 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人