两道关于指针的C语言笔试题

实验室的师兄师姐为找工作都在狂做C/C++的笔试题,偶们也掺和了下,做了两道指针方面的,大家一起来看看吧。

1. 求n的值。

int a[20];
char * p1 = (char * )a;
char * p2 = (char *)(a+5);
int n= p2-p1;

答案:20。

解析:int为4个字节,char为1个字节。a是int*型指针,加减运算以4个字节为单位,a+5便会指向第20个字节;而p1,p2是char*型,它们进行加减运算时以1个字节为单位。于是p1指向第1个字节而p2指向第21个字节,于是21-1=20,n的值为20。

2. 求 * p 的值。

Read the rest of this entry »

Win32下多核多线程编程

我们通常写的程序都是单线程的,当程序运行一个任务时,我们只能等待,什么也干不了,多线程的存在十分必要。然而,多线程的运用不止于此,现在多核已经十分普及,在大运算量的情况下,多个线程并行运行于多核会使运算的速度倍增,多核多线程的程序具有很大的优势。

Read the rest of this entry »

深入理解C语言指针的奥秘

–转自http://blog.programfan.com/article.asp?id=22552

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。

Read the rest of this entry »

Tags: ,
| Posted in 编程算法 | 1 Comment »