C语言基础【16】:指针3

1.指针变量指向的类型代表取值宽度

任何指针变量都是4字节,所以指针类型和指向的类型都不代表它的空间大小,指向类型代表从首地址向后的取值宽度。

tip:系统采用小端序,即低地址存低位(即倒叙)。取时也是倒叙取。

2.指针变量指向的类型代表+1之后的跨度

int *p = #
int *p2=p+1;        //p2指向&num后四个字节(int)

tip:当需要精确到字节操作内存空间,最好定义指向char类型的指针变量。

3.指针变量操作普通变量

还记得scanf中键入的内容是需要存放在一个叫&num空间中(告诉他一个地址编号),现在我们有了指针变量存放的地址编号,就可以直接用上p

int num=0;
int *p=#
scanf("%d",p);

4.万能指针(用void*定义指针变量)

万能指针可以指向任何类型的变量而不用进行强制类型转换,通常用作算法(或是函数)的形参输入,以增加算法的泛用性。

void*p没有宽度,所以不能对void*类型取指向的内容(解引用)。如果要取,需要强转类型

int num1;
void *p = &num1;
int num2;
num2 = *(int*)p;    //强转为int

5.指针使用时千万注意不要访问非法内存(只能访问已开辟的空间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值