易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ 面试题

第一题:
下面程序的输出结果?
#include <stdio.h>
#include <iostream>
void main()
{
char str1[] = "";
char str2[] = "";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
char* str7="abc";
char* str8="abc";
std::cout << std::boolalpha << ( str1==str2 ) << std::endl; // 输出什么?
std::cout << std::boolalpha << ( str3==str4 ) << std::endl; // 输出什么?
std::cout << std::boolalpha << ( str5==str6 ) << std::endl; // 输出什么?
std::cout << std::boolalpha << ( str7==str8 ) << std::endl; // 输出什么?
int i;
 scanf("%d",&i);
}
结果:false,false,true,true. 因为前两个的内存是在heap上分配的,当然是不同的地址;而后两个是在静态区分配的,后面的先检查前面有无该字符串,有的话,就不再分配,所以str5,str6,str7,str8地址都是相同的。
第二题:
1.检查下面程序是否有错误并写出运行结果
(1).
void GetMemory(char *p)
{
    p = (char *)malloc(100);
}
void Test(void)
{
    char *str = NULL;
    GetMemory(str);
    strcpy(str, "hello world");
    printf(str);
}
(2).
char *GetMemory(void)
{
    char p[] = "hello world";
    return p;
}
void Test(void)
{
    char *str = NULL;
    str = GetMemory();
    printf(str);
}
(3).
void GetMemory2(char **p, int num)
{
    *p = (char *)malloc(num);
}
void Test(void)
{
    char *str = NULL;
    GetMemory2(&str, 100);
    strcpy(str, "hello");
    printf(str);
}
结果:(1)程序崩溃。因为str并未被赋值,仍然是0;
       (2)可能是乱码。因为"hello world"过了生命期,不在内存了


相关文档:

Objective —C 的单例模式 Singleton实现


static
 DataManager 
*
sharedDataManager 
=
 nil;
+
 (DataManager 
*
) sharedManager
{
    @synchronized(self)
 {
        
if
 (sharedDataManager 
==
 nil)
 &nb ......

用C/C++做DLL函数的导出方法

由于VC编译器有函数重命名的功能所以,确定函数名有两种方式:
1.extern "C"
2.使用.def文件
这两种也可以一起使用。
下面是一个例子:
extern "C" _declspec(dllexport)int __stdcall JieCheng(int a)
{//阶乘函数。输入:正整数。输出:这个数的阶乘值
 int b=1;
 for(int i=1;i<=a;i++)
 {
&n ......

好玩的C代码网址集

◆经典C源程序100例:http://post.baidu.com/f?kz=8618367
◆时钟的驻留程序:http://post.baidu.com/f?kz=10822377
◆数据结构暨若干经典问题和算法:http://post.baidu.com/f?kz=10922856
◆LIUXUY 磁盘系统源程序:http://post.baidu.com/f?kz=12973347
◆RLE压缩:http://post.baidu.com/f?kz=12592570
◆快速排序 ......

Linux下C语言编程 文件的操作

前言: 
    我们在这一节将要讨论linux下文件操作的各个函数. 
1.文件的创建和读写 
2.文件的各个属性 
3.目录文件的操作 
4.管道文件 
--------------------------------------------------------------------------------
1。文件的创建和读写 
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号