-
问题:我想声明一个指针并为它分配一些空间, 但却不行。
这些代码有什么 问题?
char *p; *p = malloc(10);
你所声明的指针...
-
这是一种便利。
由于数组会马上蜕变为指针, 数组事实上从来没有传入过函数。
允许指针参数声明为数组只不过是为让它看起来好像传入了数组, 因为该参数可能在函数内当作数组使用。
...
-
通常, 你不需要。
当人们随便提到数组指针的时候, 他们通常想的是指向它的第一个元素的指针。
考虑使用指向数组某个元素的指针, 而不是数组的指针。
类型T 的数组蜕变成类型T...
-
现象:当我向一个接受指针的指针的函数传入二维数组的时候, 编译器报错了。
数组蜕化为指针的规则(参见问题6.3) 不能递归应用。
数组的数组(即C 语言中的二维数组) 蜕化为数...
-
没有完美的方法。
假设有如下声明
int array[NROWS][NCOLUMNS];
int **array1; /* 不齐的*/
int **array2; /* 连...
-
我的strcat() 不行.
我试了char *s1 = "Hello, "; char *s2 ="world!"; char *s3 = strcat(s1, s2);
但...
-
我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。
确保指向的内存已经正确分配了。
例如, 确保你没有做下面这样的事情:
char *itoa...
-
问题:
为什么有些代码小心地把malloc 返回的值转换为分配的指针类型。在ANSI/ISO 标准C 引入void * 一般指针类型之前,
这种类型转换通常用于在不兼容指针类型...
-
通常的目标是书写一个象包含一个单独的函数调用语句的宏。
这意味着“调用者”需要提供最终的分号, 而宏体则不需要。
因此宏体不能为简单的括弧包围的复合语句...
-
问题:
我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文 件, 把什么放到.h 文件。(“.h” 到底是什么意思?)作为一般规则, 你应该...
-
问题:
很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
extern int func(float); int func(x) float x; { . . .
你...
-
不能。
main() 必须声明为返回int, 且没有参数或者接受适当类型的两个参数。
如果你调用了exit()但还是有警告信息, 你可能需要插入一条冗余的return语句
(...
-
有两个程序protoize 和unprotoize 可以在有原型和无原型的函数定义和声明之间相互转换。
这些程序不能完全完成“经典” C 和...
-
我似乎不能成功定义一个链表。我试过typedef struct { char*item; NODEPTR next; } *NODEPTR; 但是编译器报了错误信息。难道在C语言中...
-
它可以用作一种格式上的提示表明函数的定义可能在另一个源文件中,
但在
extern int f();
和...
-
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。
定义是分配空间并赋初...
-
1 对sizeof 的理解:
例子1:
void main()
{
int a = 2;
...
-
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用"::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全...
-
文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。
一、概念
对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数...
-
sizeof是关键字,不是函数。
记住:sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。一般情况下,还是不要偷懒,把括号写上...