面试题2

来源:互联网 发布:java连接符 编辑:程序博客网 时间:2024/05/21 06:57
6、请写出下列代码的输出内容 
#include<stdio.h> 
main() 

int a,b,c,d; 
a=10; 
b=a++; 
c=++a; 
d=10*a++; 
printf("b,c,d:%d,%d,%d",b,c,d); 
return 0; 

答:10,12,120 


static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?
static函数与普通函数有什么区别?

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元
中被引用; 
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结
果值; 
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一
份拷贝 


int main(){ 
char* src = "hello,world"; 
int len = strlen(src); 
char* dest = (char*)malloc(len+1);//要为\0分配一个空间 
char* d = dest; 
char* s = &src[len-1];//指向最后一个字符 
while( len-- != 0 ) 
*d++=*s--; 
*d = 0;//尾部要加\0 
printf("%s\n",dest); 
free(dest);// 使用完,应当释放空间,以免造成内存汇泄露 
return 0; 



进程和线程的差别。 

  线程是指进程内的一个执行单元,也是进程内的可调度实体. 

  与进程的区别: 

  (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 
  (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 
  (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源. 
  (4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销


strcpy和memcpy主要有以下3方面的区别。
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy

原创粉丝点击