您现在的位置:网站首页答辩论文计算机毕业设计计算机论文

495个C语言问题

  • 简介:  495个C语言问题
    类型:pdf   
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载

   回串却是垃圾信息。. . . . . . . . . . . . . . . . . . . . . . . . . 36
   目录v
   7.7 那么返回字符串或其它集合的争取方法是什么呢? . . . . . . . . 37
   7.8 为什么在调用malloc() 时, 我得到“警告: 整数赋向指针需要类型
   转换”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
   7.9 为什么有些代码小心地把malloc 返回的值转换为分配的指针类型。37
   7.10 在调用malloc() 的时候, 错误“不能把void * 转换为int *” 是什
   么意思? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
   7.11 我见到了这样的代码char *p = malloc(strlen(s) + 1); strcpy(p,
   s); 难道不应该是malloc((strlen(s) + 1) * sizeof(char))? . . . . . 37
   7.12 我如何动态分配数组? . . . . . . . . . . . . . . . . . . . . . . . . 38
   7.13 我听说有的操作系统程序使用的时候才真正分配malloc 申请的内
   存。这合法吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
   7.14 我用一行这样的代码分配一个巨大的数组, 用于数字运算: double
   *array = malloc(300 * 300 * sizeof( double )); malloc() 并没有返
   回null, 但是程序运行得有些奇怪, 好像改写了某些内存, 或者
   malloc() 并没有分配我申请的那么多内存, 云云。. . . . . . . . . 38
   7.15 我的PC 有8 兆内存。为什么我只能分配640K 左右的内存? . . 38
   7.16 我的程序总是崩溃, 显然在malloc 内部的某个地方。但是我看不
   出哪里有问题。是malloc() 有bug 吗? . . . . . . . . . . . . . . . 38
   7.17 动态分配的内存一旦释放之后你就不能再使用, 是吧? . . . . . . 38
   7.18 为什么在调用free() 之后指针没有变空?使用(赋值, 比较) 释放
   之后的指针有多么不安全? . . . . . . . . . . . . . . . . . . . . . 39
   7.19 当我malloc() 为一个函数的局部指针分配内存时, 我还需要用
   free() 明确的释放吗? . . . . . . . . . . . . . . . . . . . . . . . . 39
   7.20 我在分配一些结构, 它们包含指向其它动态分配的对象的指针。
   我在释放结构的时候, 还需要释放每一个下级指针吗? . . . . . . 39
   7.21 我必须在程序退出之前释放分配的所有内存吗? . . . . . . . . . . 40
   7.22 我有个程序分配了大量的内存, 然后又释放了。但是从操作系统
   看, 内存的占用率却并没有回去。. . . . . . . . . . . . . . . . . . 40
   7.23 free() 怎么知道有多少字节需要释放? . . . . . . . . . . . . . . . 40
   7.24 那么我能否查询malloc 包, 可分配的最大块是多大? . . . . . . . 40
   7.25 向realloc() 的第一个参数传入空指针合法吗?你为什么要这样做? 40
   7.26 calloc() 和malloc() 有什么区别?利用calloc 的零填充功能安全
   吗?free() 可以释放calloc() 分配的内存吗, 还是需要一个cfree()? 40
   7.27 alloca() 是什么?为什么不提倡使用它? . . . . . . . . . . . . . . 41
   8 字符和字符串43
   8.1 为什么strcat(string, ’!’); 不行? . . . . . . . . . . . . . . . . . . 43
   8.2 我在检查一个字符串是否跟某个值匹配。为什么这样不行?char
   *string; . . . if(string == "value") f /* string matches ”value” */
   . . . g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
   目录vi
   8.3 如果我可以写char a[] = "Hello, world!"; 为什么我不能写char
   a[14]; a = "Hello, world!"; . . . . . . . . . . . . . . . . . . . . . . 43
   8.4 我怎么得到对应字符的数字(字符集) 值, 或者相反? . . . . . . . 44
   8.5 我认为我的编译器有问题: 我注意到sizeof(’a’) 是2 而不是1 (即,
   不是sizeof(char))。. . . . . . . . . . . . . . . . . . . . . . . . . . 44
   9 布尔表达式和变量45
   9.1 C 语言中布尔值的候选类型是什么?为什么它不是一个标准类
   型?我应该用#define 或enum 定义true 和false 值吗? . . . . . 45
   9.2 因为在C 语言中所有的非零值都被看作“真”, 是不是把TRUE 定
   义为1 很危险?如果某个内置的函数或关系操作符“返回” 不是1
   的其它值怎么办? . . . . . . . . . . . . . . . . . . . . . . . . . . 45
   9.3 当p 是指针时, if(p) 是合法的表达式吗? . . . . . . . . . . . . . 46
   10 C 预处理器47
   10.1 这些机巧的预处理宏: #define begin f #define end g 你觉得怎么
   样? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
   10.2 怎么写一个一般用途的宏交换两个值? . . . . . . . . . . . . . . . 47
   10.3 书写多语句宏的最好方法是什么? . . . . . . . . . . . . . . . . . 47
   10.4 我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c
   文件, 把什么放到.h 文件。(“.h” 到底是什么意思?) . . . . . . . 48
   10.5 一个头文件可以包含另一头文件吗? . . . . . . . . . . . . . . . . 48
   10.6 #include ﹤﹥ 和#include "" 有什么区别? . . . . . . . . . . . . 48
   10.7 完整的头文件搜索规则是怎样的? . . . . . . . . . . . . . . . . . 49
   10.8 我在文件的第一个声明就遇到奇怪的语法错误, 但是看上去没什
   么问题。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
   10.9 我包含了我使用的库函数的正确头文件, 可是连接器还是说它没
   有定义。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
   10.10 我在编译一个程序, 看起来我好像缺少需要的一个或多个头文
   件。谁能发给我一份? . . . . . . . . . . . . . . . . . . . . . . . . 49
   10.11 我怎样构造比较字符串的#if 预处理表达式? . . . . . . . . . . . 49
   10.12 sizeof 操作符可以用于#if 预编译指令中吗? . . . . . . . . . . . . 50
   10.13 我可以在#include 行里使用#ifdef 来定义两个不同的东西吗? . 50
   10.14 对typdef 的类型定义有没有类似#ifdef的东西? . . . . . . . . . 50
   10.15 我如何用#if 表达式来判断机器是高字节在前还是低字节在前? . 50
   10.16 我得到了一些代码, 里边有太多的#ifdef。我不想使用预处理器
   把所有的#include 和#ifdef 都扩展开, 有什么办法只保留一种条
   件的代码呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
   10.17 如何列出所有的预定义标识符? . . . . . . . . . . . . . . . . . . . 50
   目录vii
   10.18 我有些旧代码, 试图用这样的宏来构造标识符#define Paste(a, b)
   a/**/b 但是现在不行了。. . . . . . . . . . . . . . . . . . . . . . 51
   10.19 为什么宏#define TRACE(n) printf("TRACE: %dnn", n) 报出警
   告“用字符串常量代替宏”?它似乎应该把TRACE(count); 扩展
   为printf("TRACE: %dncount", count); . . . . . . . . . . . . . . 51
   10.20 使用# 操作符时, 我在字符串常量内使用宏参数有问题。. . . . . 51
   10.21 我想用预处理做某件事情, 但却不知道如何下手。. . . . . . . . . 51
   10.22 怎样写参数个数可变的宏? . . . . . . . . . . . . . . . . . . . . . 51
   11 ANSI/ISO 标准C 53
   11.1 什么是“ANSI C 标准”? . . . . . . . . . . . . . . . . . . . . . . . 53
   11.2 我如何得到一份标准的副本? . . . . . . . . . . . . . . . . . . . . 53
   11.3 我在哪里可以找到标准的更新? . . . . . . . . . . . . . . . . . . . 54
   11.4 很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
   extern int func(float); int func(x) float x; f . . . . . . . . . . . . . 54
   11.5 能否混用旧式的和新型的函数语法? . . . . . . . . . . . . . . . . 55
   11.6 为什么声明extern int f(struct x *p); 报出了一个奇怪的警告信
   息“结构x 在参数列表中声明”? . . . . . . . . . . . . . . . . . . 55
   11.7 我不明白为什么我不能象这样在初始化和数组维度中使用常量:
   const int n = 5; int a[n]; . . . . . . . . . . . . . . . . . . . . . . . 55
   11.8 既然不能修改字符串常量, 为什么不把它们定义为字符常量的数
   组? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
   11.9 “const char *p” 和“char * const p” 有何区别? . . . . . . . . . . 56
   11.10 为什么我不能向接受const char ** 的函数传入char **? . . . . . 56
   11.11 怎样正确声明main()? . . . . . . . . . . . . . . . . . . . . . . . . 56
   11.12 我能否把main() 定义为void, 以避免扰人的“main无返回值” 警
   告? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
   11.13 可main() 的第三个参数envp 是怎么回事? . . . . . . . . . . . . 57
   11.14 我觉得把main() 声明为void 不会失败, 因为我调用了exit() 而不
   是return , 况且我的操作系统也忽略了程序的退出/返回状态。. . 57
   11.15 那么到底会出什么问题?真的有什么系统不支持void main() 吗? 57
   11.16 我一直用的那本书《熟练傻瓜C语言》总是使用void main()。. . 57
   11.17 从main() 中, exit(status) 和返回同样的status 真的等价吗? . . . 57
   11.18 我试图用ANSI “字符串化” 预处理操作符# 向信息中插入符号
   常量的值, 但它字符串化的总是宏的名字而不是它的值。. . . . . 58
   11.19 警告信息“warning: macro replacement within a string literal” 是
   什么意思? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
   11.20 在我用#ifdef 去掉的代码里出现了奇怪的语法错误。. . . . . . . 58
   11.21 #pragma 是什么, 有什么用? . . . . . . . . . . . . . . . . . . . . 59
   11.22 “#pragma once” 是什么意思?我在一些头文件中看到了它。. . 59
   目录viii
   11.23 a[3] = "abc"; 合法吗?它是什么意思? . . . . . . . . . . . . . . . 59
   11.24 为什么我不能对void* 指针进行运算? . . . . . . . . . . . . . . . 59
   11.25 memcpy() 和memmove() 有什么区别? . . . . . . . . . . . . . . 59
   11.26 malloc(0) 有什么用?返回一个控指针还是指向0 字节的指针? . 59
   11.27 为什么ANSI 标准规定了外部标示符的长度和大小写限制? . . . 60
   11.28 我的编译对最简单的测试程序报出了一大堆的语法错误。. . . . . 60
   11.29 为什么有些ASNI/ISO 标准库函数未定义?我明明使用的就是
   ANSI 编译器。. . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
   11.30 谁有把旧的C 程序转化为ANSI C 或相反的工具, 或者自动生成
   原型的工具? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
   11.31 为什么声称兼容ANSI 的Frobozz Magic C 编译器不能编译这些
   代码?我知道这些代码是ANSI 的, 因为gcc 可以编译。. . . . . 60
   11.32 人们好像有些在意实现定义(implementation-defin-ed)、未明确
   (unspecified) 和无定义(undefined) 行为的区别。它们的区别到底
   在哪里? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
   11.33 一个程序的“合法”, “有效” 或“符合” 到底是什么意思? . . . . . 61
   11.34 我很吃惊, ANSI 标准竟然有那么多没有定义的东西。标准的唯一
   任务不就是让这些东西标准化吗? . . . . . . . . . . . . . . . . . 61
   11.35 有人说i = i++ 的行为是未定义的, 但是我刚在一个兼容ANSI 的
   编译器上测试, 得到了我希望的结果。. . . . . . . . . . . . . . . 62
   12 标准输入输出库63
   12.1 这样的代码有什么问题?char c; while((c = getchar()) != EOF) ... 63
   12.2 我有个读取直到EOF 的简单程序, 但是我如何才能在键盘上输入
   那个“EOF” 呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
查看评论 已有0位网友发表了看法
  • 验证码: