| 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)
 | 
          
            | 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | 
          
            |  | 
 
 |