野指针,指向常量的指针,指针常量

在使用指针前,最好先为指针分配内存空间。

计算内存的最小单位是 BYTE,每个BYTE都对应有唯一一个编号。

在32位系统中,每个编号是一个32位的整数。64位系统中,每个编号是占64位。

指向NULL的指针为空指针。
野指针:具体没有指向任何变量地址的指针叫野指针。
int * p 
*p =1 ;  语法上没错,但是出现了野指针。假设运气好,p可能指向一个程序的有效地址。否则程序将崩溃。

进行相应的语法屏蔽: #pragma warning(disable:4700)

char b ;
int * p = & b ; 也会出错,因为int * 指向的内存有4个字节,而 b所占内存只有一个字节,
打印 *p 时  会后三个字节的值是随机的,所以说会出错。


int a = 0x1310 ;
char b ;
char * p = &b ;  
printf("%x",*p); 此时会出现截断。结果将只取第一字节的内容,即10,若用10进制打印,则结果是16.  


const int * p 为指向常量的指针。 这个指针只能指向一个常量。即 *p是个只读的值,不能修改。
int * const p 为指针常量。


IP 在网络中传递的时候是一个DWORD即一个int。

IP地址通常看成一个4字节的整数。

例 "192.168.0.1"
int ip = 0 ;
unsigned char * p1 = &ip ;
*p1 = 192;
p1++ ;
*p1 = 168 ;
p1++ ;
*p1 = 0;
p1++; 
*p1 = 1 ;

void ip2(int n)    //将一个保存ip地址的整数以ip地址的格式打印出来。
{
 unsigned char *p  = &n ;
 printf("%u. %u. %u. %u\n",*p,*(p+1),*(p+2),*(p+3));
}












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值