指针4-指针的运算和指针变量占几个字节
#include<stdio.h>//2018-05-29/*指针变量的运算指针不能相加,不能相乘,也不能相除如果两个指针变量指向的是同一快连续空间中的不同存储单元则这两个指针变量才可以相减intmain(void){inti=5;intj=10;int*p=&i;int*q=&j;inta[5];p=&a[1];q=&a[4];printf("%d个单位\n",q-p);return0;}*///——————————————————————————————————————————————————————/*一个指针变量到底占几个字节预备知识:sizeof(数组类型)功能:返回值就是该数据类型占的自己数例子:sizeof(int)=4sizeof(char)=1sizeof(double)=8假设p指向char类型变量(1个字节)假设q指向int类型变量(4个字节)假设p指向double类型变量(8个字节)pqr本身所占字节数是否一样答案:一样都是4总结:一个指针变量,无论它指向的变量占几个字节,该指针变量本身只占4个字节可以这样理解:p,q,r代表的都是地址,若以10进制输出则都是×××,所以是4个字节(个人想法)看下面的输出就可以知道printf("%d,%d,%d\n",sizeof(p),sizeof(q),sizeof(r));//输出4,4,4printf("%d,%d,%d\n",sizeof(*p),sizeof(*q),sizeof(*r));//输出1,4,8#include<stdio.h>intmain(void){charch='A';inta=12;doubleb=52.4;char*p=&ch;int*q=&a;double*r=&b;printf("%d,%d,%d\n",sizeof(p),sizeof(q),sizeof(r));//输出4,4,4printf("%d,%d,%d\n",sizeof(*p),sizeof(*q),sizeof(*r));//输出1,4,8sizeof(p);return0;}*/
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。