指针型变量,以及其大小

指针型变量   其大小为4字节表示地址,与里面存放的值的类型无关

例如:

main()

{

int*i;

char*str;

*i=100;

str="Good";

}

*i表示i是一个指向整型数的指针,即*i是一个整型变量, i是一个指向该整型变量的地址。

*str表示str是一个字符型指针,即保留某个字符地址。在初始化时,str没有什么特殊的值,而在执行str="Good"时,编译器先在目标文件的某处保留一个空间存放"Good\0"的字符串,然后把这个字符串的第一个字母"G"的地址赋给str, 其中字符串结尾符"\0"是编译程序自动加上的。

 

对于指针变量的使用要特别注意。上例中两个指针在说明前没有初始化,因此这两指针为随机地址,在小存储模式下使用将会有破坏机器的危险。正确的使用办法如下:

例如:

main()

{

int*i;

char*str;

i=(int*)malloc(sizeof(int));

*i=420;//尤其要注意,此时是把420存放到i指向的内存 

str=(char*)malloc(20);

str="Good, Answer!";//直接就是指向的地址 ??  

}

 

如果要使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指向的下一个字节中就错了。TurboC2.0中只要说明i为整型指针,

则(i+1) 等价于 i+1*sizeof(int)

同样(i+2) 等价于 i+2*sizeof(int)

转载于:https://www.cnblogs.com/xuq22/archive/2011/05/26/3769153.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值