C语言基础教程(二)数据类型、变量和运算符(11) |
|
www.nanhushi.com 佚名 不详 |
对于指针变量的使用要特别注意。上例中两个指针在说明前没有初始化, 因此 这两指针为随机地址, 在小存储模式下使用将会有破坏机器的危险。正确的使用办 法如下: 例如: main() { int *i; char *str; i=(int*)malloc(sizeof(int)); i=420; str=(char*)malloc(20); str="Good, Answer!"; . . . } 上例中, 函数(int*)malloc(sizeof(int))表示分配连续的sizeof(int)=2个字 节的整型数存储空间并返回其首地址。同样(char*)malloc(20)表示分配连续20 个 字节的字符存储空间并返回首地址(有关该函数以后再详述)。由动态内存分配函数 malloc()分配了内存空间后, 这部分内存将专供指针变量使用。 如果要使i指向三个整型数, 则用下述方法。 例如: #include<alloc.h> main() { int *a; a=(int*)malloc(3*sizeof(int)); *a=1234; *(a+1)=4567; *(a+2)=234; . . . } *i=1234表示把1234存放到i指向的地址中去, 但对于*(i+1)=4567, 如果认为 将4567存放到i指向的下一个字节中就错了。Turbo C2.0中只要说明i为整型指针, 则 (i+1) 等价于 i+1*sizeof(int) 同样 (i+2) 等价于 i+2*sizeof(int)
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: C语言基础教程(二)数据类型、变量和运算符(10) 下一篇文章: C语言基础教程(二)数据类型、变量和运算符(12) |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|