#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;
}
*/
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。