13.2 指针的定义和使用

#include<stdio.h>

int main()
{
	//指针是一种类型,定义的指针变量可以保存变量地址
	//定义方式 :类型* 变量名
	//指针的关系运算符:1.&取地址符 获得变量的地址								一把锁
	//					2.*取值符号 (有的地方叫解引用)获得指针指向的内存空间值	一把钥匙
	//一把钥匙开一把锁

	//指针的类型:
	//1.指针指向的类型
	//2.指针变量的类型
	int sex = 666;
	//定义了int类型的指针变量p,
	int* p;
	p = &sex; //把sex的地址赋值给指针变量,指针P指向了变量sex(指针存的谁的地址,指向了谁)

	//输出指针
	printf("%p %p\n", p, &sex);	//00000098D110F934 00000098D110F934		64位系统
	//根据指针存的地址找到指向的变量(间接使用变量)
	printf("%d %d\n", sex, *p);	//666  666

	printf("%d\n", *&sex);	//666

	int num = 3;
	//int* p = &num; //初始化
	//*p=&num;	//不能把地址赋值给一个整形 warning C4047:“=”:“int”与“int*”的间接级别不同

	int* p1, p2, p3;//都是指针类型吗?只有p1是指针类型,p2,p3都是int类型(特别重要,编程时要特别注意)
	//int* p1,*p2,*p3  //p1,p2,p3都是指针
 	double dd = 2.14;//8Byte
	double* d = &dd;//4Byet

	//指针类型,32位4个字节,64位8字节
	printf("%d\n", sizeof(double*));//4Byte(32位)  8Byte(64位)  
	printf("%d\n", sizeof(char*));  //4Byte(32位)  8Byte(64位)

	//指针指向的类型:一般和声明指针的时候*前面类型一致
	char* pstr = (char*)d;
	printf("%c\n", *pstr);	//

	int ch = 65;
	char* pc = &ch;  //在C文件正确 ,在CPP文件出错	错误(活动)	E0144	"int *" 类型的值不能用于初始化 "char *" 类型的实体

	putchar(*pc);  //A

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值