#include <stdio.h> //2018-05-29 /* 指针变量的运算 指针不能相加,不能相乘,也不能相除 如果两个指针变量指向的是同一快连续空间中的不同存储单元 则这两个指针变量才可以相减 int main(void) { int i = 5; int j = 10; int * p = &i; int * q = &j; int a[5]; p = &a[1]; q = &a[4]; printf("%d个单位\n",q-p); return 0; } */ //—————————————————————————————————————————————————————— /* 一个指针变量到底占几个字节 预备知识: sizeof(数组类型) 功能:返回值就是该数据类型占的自己数 例子: sizeof(int) = 4 sizeof(char) = 1 sizeof(double)=8 假设p指向char类型变量(1个字节) 假设q指向int类型变量(4个字节) 假设p指向double类型变量(8个字节) p q r 本身所占字节数是否一样 答案:一样都是4 总结: 一个指针变量,无论它指向的变量占几个字节,该指针变量本身只占4个字节 可以这样理解:p,q, r代表的都是地址,若以10进制输出则都是×××,所以是4个字节(个人想法) 看下面的输出就可以知道 printf("%d,%d,%d\n",sizeof(p),sizeof(q),sizeof(r)); //输出4,4,4 printf("%d,%d,%d\n",sizeof(*p),sizeof(*q),sizeof(*r)); //输出1,4,8 #include <stdio.h> int main(void) { char ch = 'A'; int a = 12; double b = 52.4; char *p = &ch; int *q = &a; double * r = &b; printf("%d,%d,%d\n",sizeof(p),sizeof(q),sizeof(r)); //输出4,4,4 printf("%d,%d,%d\n",sizeof(*p),sizeof(*q),sizeof(*r)); //输出1,4,8 sizeof(p); return 0; } */
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。