20150416指针

一.指针概要与要素

1.取地址&在寄存器产生,不占内存,int *p=&a;p是一个变量,要占用内存,间接赋值,存储不同的地址


2.地址计算机总线,地址作为常量不消耗内存


3.任何类型的指针地址都一样,都是四个字节

double *p;

printf("%d",sizeof(p));  占用四个字节

printf("%d",sizeof(*p));占用八个字节


4.指针的类型决定了指针的长度和解析方式,不明确的类型(void)定义的指针不能间接取值,也不能间接赋值


四.指针声明

1.define 定义的指针,如下面代码,define修饰的指针只修饰了p1

#define 指针 double*

typedef double* INTP;
//int *p
//typedef int *p;
//typedef int *  INTP;//别名


void main()
{
	指针 p1, p2;//double * p1,p2;  //4,8
	INTP  p3, p4;//double*类型
	printf("%d,%d", sizeof(p1), sizeof(p2));
	printf("\n%d,%d", sizeof(p3), sizeof(p4));
	getchar();


}


六.地址输入

1.可以用scanf接收地址,然后根据地质更改值

void main()
{

	int num = 10;
	int data = 20;
	printf("%p,%p", &num, &data);
	int *p;
	scanf("%p", &p);//不需要带0x,必须

	*p = 20 + 3;
	printf("num=%d,data=%d", num, data);
	system("pause");
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值