指针概念

 指针:就是地址
 &变量名:获得该变量的地址。&称为取地址符
 *指针变量:访问指针变量指向的内容,间接访问符或者解引用
 指针变量:1.也是变量,值可以改变。2.也可以获取他的地址
 

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int* p = &a;//定义一个整型指针(地址)变量
	int* p1//1,定义整型地址(指针)变量
	*p = 100;
	p = &b;
	*p = 200;

	int a = 10;
	int b = 20;
	int c = 30;
	//定义指针变量p1,保存a的地址
	int* p1 = &a;
	//定义指针变量p2,保存b的地址
	int* p2 = &b;
	//定义指针变量p3,保存c的地址
	int* p3 = &c;
	//通过p1,把a的值改为50,并通过p1输出a的值
	*p1 = 50; printf("%d\n", *p1);
	//通过p1,p2,p3,把c=a+b(不允许出现a,b,c)并通过p1,p2,p3输出a,b,c的值
	*p3 = *p1 + *p2; printf("%d%d%d\n", *p1, *p2, *p3);
	//通过p1,p2,p3,把c=a*b(不允许出现a,b,c)并通过p1,p2,p3输出a,b,c的值
	*p3 = *p1 * *p2;

	int a = 10;
	int b = 20;
	int c = 30;
	int* p = &a;
	//通过p将a改为60,并通过p输出a的值
	*p = 60; printf("%d\n", *p);
	//通过p将b改为70,并通过p输出b的值
	p = &b;
	*p = 70; printf("%d\n", *p);
	//通过p将c改为80,并通过p输出c的值
	p = &c;
	*p = 80;printf("%d\n", *p);

	char a = 'x';
	short b = 12;
	int c = 20;
	float d = 12.5f;
	double e = 23.4;
	unsigned long f = 300;
	定义指针p1,指向a,并通过p1输出a的值
	定义指针p2,指向b,并通过p2输出b的值
	定义指针p3,指向c,并通过p3输出c的值
	定义指针p4,指向d,并通过p4输出d的值
	定义指针p5,指向e,并通过p5输出e的值
	定义指针p6,指向f,并通过p6输出f的值
	/*char* p1 = &a; printf("%c\n", *p1);
	short* p2 = &b; printf("%d\n", *p2);
	int* p3 = &c; printf("%d\n", *p3);
	float* p4 = &d; printf("%f\n", *p4);
	double* p5 = &e; printf("%lf\n", * p5);
	unsigned long* p6 = &f; printf("%u\n", *p6);*/

	int a = 10;
	int b = 20;
	int* p = &a;
	*p = 100;
	p = &b;
	*p = 200;
	/*int**pp=&p;*/
	int** pp;
	pp = &p;
	*pp = &a;//*pp等同于p   p=&a; **pp==*p==a
	**pp = 1000;//a=1000;
	*pp = &b;//p=&b;
	**pp = 2000;//b=2000;
//指针大小
	printf("%d\n", sizeof(char*));//1
	printf("%d\n", sizeof(unsigned short*));//2
	printf("%d\n", sizeof(int*));//4
	printf("%d\n", sizeof(float*));//4
	printf("%d\n", sizeof(double*));//8
	printf("%d\n", sizeof(long****));//4
	printf("%d\n", sizeof(long long*));//8
	printf("%d\n", sizeof(1)); //4,int
	printf("%d\n", sizeof(1,2));//4,float


	int a = 10;
	int b = 20;
	int temp=a;
	a= b;
	b = temp;
	printf("%d,%d\n", a, b);
	return 0;
}

野指针:也称为悬挂指针,就是你没有访问权限的指针(地址),这个地址可能不存在
NULL:空指针,明确表示当前是无效指针
结论:父函数调用子函数,想通过子函数修改父函数的变量值(实参),简单的说就是形参的       改变能够影响实参,必须满足两个条件:1.传指针 2.解引用
 int *p定义一个整型指针(地址)变量

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值