C语言指针学习(一)

/*	1.变量的内存地址 
	使用取地址运算符&取出变量的地址
	%p表示输出变量的地址
	地址值是用一个十六进制的无符号整数表示的,其字长一般与主机的字长相同 
	*/
#include<stdio.h>
int main()
{
	int a=0,b=1,d=2,f=3;
	char c='A',g='B',h='C',i='F',j='G',l='D',m='M';
	printf("a is %d,&a is %p\n",a,&a);
	printf("b is %d,&b is %p\n",b,&b);
	printf("d is %d,&d is %p\n",d,&d);
	printf("f is %d,&f is %p\n",f,&f);
	printf("c is %d,&c is %p\n",c,&c);
	printf("g is %d,&g is %p\n",g,&g);
	printf("h is %d,&h is %p\n",h,&h);
	printf("i is %d,&i is %p\n",i,&i);
	printf("j is %d,&j is %p\n",j,&j);
	printf("l is %d,&l is %p\n",l,&l);
	printf("m is %d,&m is %p\n",m,&m);
 } 

/*	2.指针变量的定义和初始化
	使用指针变量显示变量的地址值
	 
*/
#include<stdio.h>
int main()
{
	int a=0,b=1;	
	char c='A';
	/*定义了指针变量,需要初始化,否则未被初始化的指针变量的值是一个随机值
	int *pa,*pb;	//定义了可以指向整型数据的指针变量pa和pb
	char *pc;		//定义了可以指向字符型数据的指针变量pc 
	*/
	int *pa=NULL,*pb=NULL;	//定义指针变量并初始化为NULL
	char *pc=NULL;		//定义指针变量并初始化为NULL 
	printf("a is %d,&a is %p,pa is %p\n",a,&a,pa);
	printf("b is %d,&b is %p,pb is %p\n",b,&b,pb);
	printf("c is %d,&c is %p,pc is %p\n",c,&c,pc);
	return 0;
}

/*	2.指针变量的定义和初始化
	使用指针变量显示变量的地址值
	指针变量只能指向同一基类型的变量 
*/
#include<stdio.h>
int main()
{
	int a=0,b=1;	
	char c='A';
	/*定义了指针变量,需要初始化,否则未被初始化的指针变量的值是一个随机值
	int *pa,*pb;	//定义了可以指向整型数据的指针变量pa和pb
	char *pc;		//定义了可以指向字符型数据的指针变量pc 
	*/
	/*
	int *pa=NULL,*pb=NULL;	//定义指针变量并初始化为NULL
	char *pc=NULL;		//定义指针变量并初始化为NULL 
	*/
	int *pa,*pb;
	char *pc;
	pa=&a;			//初始化指针变量pa,使其指向a 
	pb=&b;			//初始化指针变量pb,使其指向b 
	pc=&c;			//初始化指针变量pc,使其指向c	
	printf("a is %d,&a is %p,pa is %p\n",a,&a,pa);
	printf("b is %d,&b is %p,pb is %p\n",b,&b,pb);
	printf("c is %d,&c is %p,pc is %p\n",c,&c,pc);
	printf("*pa is %d",*pa);
	return 0;
}

/*	3.间接寻址运算符(解引用运算符)
	间接寻址运算符 * 用来访问指针变量指向的变量的值 
*/
#include<stdio.h>
int main()
{
	int a=0,b=1;
	char c='A';
	//对指针变量进行初始化 
	int *pa=&a,*pb=&b;
	char *pc=&c;
	*pa=10;		//修改指针变量pa所指向的变量的值 
	printf("a is %d,&a is %p,pa is %p,*pa is %d\n",a,&a,pa,*pa);
	printf("b is %d,&b is %p,pb is %p,*pb is %d\n",b,&b,pb,*pb);
	printf("c is %d,&c is %p,pc is %p,*pc is %c\n",c,&c,pc,*pc);
	return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shexianyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值