温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

指针4-指针的运算和指针变量占几个字节

发布时间:2020-04-11 05:04:58 来源:网络 阅读:1218 作者:天道酬勤VIP 栏目:编程语言
#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;

}

 */


指针4-指针的运算和指针变量占几个字节



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI