指针的基本概念

来源:互联网 发布:北京编程培训班 编辑:程序博客网 时间:2024/06/08 18:29

1、指针的定义

type * ptr;

    ptr是指向type的指针,type除了可以为基本的数据类型外,还可以为指针、数组、结构体、类、函数等;在判断是指向什么类型时,只需要看最后一个*号,之前的就是所指向的类型;

2、指针的长度

    无论指针指向什么类型,指针的长度只跟CPU的位数相关,如果系统是是32位的,那么指针的长度就是32bit,也就是4字节;sizeof(char *)、sizeof(int *)。。。。统统结果都为4,不要被type的类型所迷惑!!!

3、指针的赋值

    指针指向数据的存放地址,所以指针里面存放的也就是数据的地址;,有以下两种赋值方法:

int Num = 100;

int *ptr = &Num;

int Num = 100;

int *ptr ;

ptr = &Num;

第一种方法容易引起误解,以为*ptr是指Num的值,怎么能赋值为地址?其实是没有划分清楚那条指令,第一条指令可以理解为:(int *) ptr = &Num;      ptr是指针,*ptr是指针指向地址的值!

4、指针的运算

type *ptr;

ptr ++;

    ptr变化了多少?是不是加1?    没有表面上看的那么简单,在这个地方,编译器对ptr执行的是加sizeof(type)的操作!!

    指针的实际运算将会由编译器在编译的时候,根据指针指向数据类型的大小进行实际的翻译转换--这也是指针类型的作用!!指针只能进行加减,不能进行乘除操作!


0 0
原创粉丝点击