关于指针的15个经典面试题

1. 常指针与常量的指针         char * const p;   char const * p   const char *p   上述三个有什么区别?   char * const p;   //p为只读指针。   char const * p;//p值只读的指针。  ...

2017-02-26 07:58:28

阅读数:296

评论数:0

一个 pthread_cancel 引起的线程死锁

说明:本文由【2,3】整理而得。 这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。 目 录: 1. 一个 pthread_cancel ...

2017-02-24 17:38:00

阅读数:234

评论数:0

C++_重载、重写和重定义的区别

相信看到这个标题头就晕了,其实将他们彼此放到一起来看,就会比较清晰辨认了。 重载:函数名相同,函数的参数个数、参数类型或参数顺序三者中必须至少有一种不同。函数返回值的类型可以相同,也可以不相同。发生在一个类内部。 重定义:也叫做隐藏,子类重新定义父类中有相同名称的非虚函数 ( 参数列表可以...

2017-02-24 15:12:35

阅读数:224

评论数:0

static在C和C++中的用法和区别

static主要有三个作用:   (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍: 一、局部静态变量   在C/C++中, 局部变量按照存储形式可分为三种auto, static, regi...

2017-02-24 15:01:46

阅读数:200

评论数:0

const类型的指针是否可变问题

const int *p; // p 可变,p 指向的对象不可变 int const *p; // p 可变,p 指向的对象不可变 int *const p; // p 不可变,p 指向的对象可变 const int *const p; //指针p 和p 指向的对象都不可变 在平时的授课中...

2017-02-24 14:38:29

阅读数:280

评论数:0

局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别

下面有几种网上的理解,我整理一下: 一:  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。  2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分...

2017-02-24 14:29:00

阅读数:221

评论数:0

绝对地址赋值

这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下: int *ptr; ptr = (int *)0x67a9; *ptr = 0xaa55; 一个较晦涩的方法是:...

2017-02-24 11:27:37

阅读数:1519

评论数:0

自动变量与非自动变量

自动变量   局部变量,如不作专门说明为静态变量,都是动态分配存储空间,存储在动态存储区中。这种变量叫自动变量。这种变量只在定义它们的时候才创建,在定义它们的函数返回时系统回收变量所占存储空间。对这些变量存储空间的分配和回收是由系统自动完成的,所以也叫自动变量。一般情况下,不作专门说明的局部变量...

2017-02-24 11:03:42

阅读数:186

评论数:0

C语言字节对齐问题详解

引言      考虑下面的结构体定义: 1 typedef struct{ 2 char c1; 3 short s; 4 char c2; 5 int i; 6 }T_FOO;      假设这个结构体的成员在内存中是紧凑排列的,且c1的...

2017-02-24 10:51:05

阅读数:378

评论数:0

C语言中关键字volatile的含义

volatile 的意思是“易失的,易改变的”。这个限定词的含义是向编译器指明变量的内容可能会由于其他程序的修改而变化。通常在程序中申明了一个变量时,编译器会尽量把它存放在通用寄存器中,例如ebx。当CPU把其值放到ebx中后就不会再关心对应内存中的值。若此时其他程序(例如内核程序或一个中断)修改...

2017-02-24 10:35:24

阅读数:276

评论数:0

子进程继承父进程中互斥锁的讨论

1. 引言 首先明确一个问题:如果一个多线程程序的某个线程调用了fork函数,那么新创建的子进程里是不会自动创建和父进程相同数量的线程的,它只是调用fork的那个线程的完整复制。并且,子进程会自动继承父进程中(包括父进程在调用fork之前创建的线程)互斥锁的状态。也就是说,父进程中已经被加锁的...

2017-02-23 15:16:29

阅读数:277

评论数:0

浮点型数据在内存中存储的表示

学计算机N年了,一年懒得去了解小数的存放,趁今天想知道double数据存放格式,了解了一下,真是懒不得,无论什么样的基础知道,早晚一天还是要学到心中的。 一、浮点型数据在内存中存储的表示 实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的尾数。比如32位机上f...

2017-02-22 09:17:43

阅读数:204

评论数:0

typedef struct 和struct

typedef struct tagMyStruct     {      int iNum;      long lLength;     } MyStruct;     在C中,这个申明后申请结构变量的方法有两种:     (1)struct tagMyStruct 变量名  ...

2017-02-20 16:33:46

阅读数:166

评论数:0

http 错误代码表

所有 HTTP 状态代码及其定义。  代码  指示   2xx  成功   200  正常;请求已完成。   201  正常;紧接 POST 命令。   202  正常;已接受用于处理,但处理尚未完成。   203  正常;部分信息 — 返回的信息只是一部分。   204  正常;...

2017-02-20 10:42:08

阅读数:282

评论数:0

printf背后的故事

说起编程语言,C语言大家再熟悉不过。说起最简单的代码,Helloworld更是众所周知。一条简单的printf语句便可以完成这个简单的功能,可是printf背后到底做了什么事情呢?可能很多人不曾在意,也或许你比我还要好奇!那我们就聊聊printf背后的故事。 一、printf的代码在哪里? 显...

2017-02-17 09:31:12

阅读数:349

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭