-
为什么strncpy()不能总在目标串放上终止符&rsQuo;\0&rsQuo;?
strncpy() 最初被设计为用来处理一种现在已经废弃的数据结构—...
-
scanf() 有很多问题—— 参见问题12.15, 12.16 和12.17。而且, 它的%s 格式 有着和gets() 一样的问题(参见问题12.20)...
-
如果需要大数值(大于32, 767 或小于¡32, 767), 使用long 型。否则, 如果空间很重要(如有大数组或很多结构), 使用short 型。除此之外, 就使...
-
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回指向字符的指针的函数的指针的数组?这个问题至少有以下3 种答案:
1、char *(*(*a[N])())();
2...
-
问题:对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为&ldQuo;零&rdQuo;, 它可否作为空指针或浮点零?具有&ldQuo;静态&rdQuo; 生存期...
-
用下面这样的代码extern int func();int (*fp)() = func;当一个函数名出现在这样的表达式中时, 它就会&l...
-
第一种形式声明了一个&ldQuo;结构标签&rdQuo;;
第二种声明了一个&ldQuo;类型定义&rdQuo;。
主要的区别是在后文中你需要用&...
-
让客户使用指向没有公开定义(也许还隐藏在类型定义后边) 的结构类型的指 针是一个好办法。
只要不访问结构成员,
声明和使用&ldQuo;匿名&rd...
-
把函数指针直接加入到结构中就可以实现简单的&ldQuo;方法&rdQuo;。
你可以使用各种不 雅而暴力的方法来实现继承, 例如通过预处理器或含有&ldQuo;基类...
-
问题:我遇到这样声明结构的代码: struct name { int namelen; char namestr[1];}; 然后又使用一些内存分配技巧使namestr ...
-
没有。
编译器没有简单的好办法实现结构比较(即, 支持结构的== 操作符),
这也符合C 的低层特性。
简单的按字节比较会由于结构...
-
传统的C 没有办法生成匿名结构值;
你必须使用临时结构变量或一个小的结构生成函数。C99 标准引入了&ldQuo;复合常量&rdQuo; (comp...
-
用fwrite() 写一个结构相对简单:
fwrite(&somestruct, sizeof somestruct, 1, fp);
对应...
-
问题:我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部 数据文件进行&rdQuo;二进制&rdQuo; 读写。能否关掉填充, 或者控制结构域的 对齐方式? 这...
-
问题:
使用我的编译器,
下面的代码int i=7; printf("%d\n", i++ * i++); 返回49?
不管按什么顺序计算, 难道不该打印出56吗? ...
-
问题:我想声明一个指针并为它分配一些空间, 但却不行。
这些代码有什么 问题?
char *p; *p = malloc(10);
你所声明的指针...
-
问题:
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。
为什么如下的代码((int *)p)++; 不行?在C语言中,
类型转换意味着&ldQuo;...
-
真的没有。 严格地讲, C 总是按值传递。
你可以自己模拟按引用传递, 定义接受指针的函数, 然后在调用时使用& 操作符。
-
问题一:我能否用void** 指针作为参数, 使函数按引用接受一般指针?
不可移植。
C 中没有一般的指针的指针类型。
void* 可以用作一般指针只是因为当它和其它类型相互...
-
最初,
一个函数指针必须用* 操作符(和一对额外的括弧) &ldQuo;转换为&rdQuo; 一个&ldQuo;真正的&rdQuo; 函数才能调用:...