C语言— 指针概念理解

 要熟练掌握指针,必须要先理解内存是什么

(1)内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中运行的,所以为了有效的使用内存,就把内存划分为一个个小的内存单元,每个内存单元的大小是一个字节。

为了能够有效的访问到内存的每个单元,就把内存单元进行了编号,这些编号被称为该内存单元的地址 

(2)如何产生地 址

我们所说的32位,64位指的是

32位指的是有32根地址线(电线) 或者是数据线 ,一旦通电就有正电和负电之分,如果正电用1来表达,负电用0来表达。

00000000000000000000000000000000

00000000000000000000000000000001

00000000000000000000000000000010

................................................................

0111111111111111111111111111111111111

100000000000000000000000000000000 

................................................................

11111111111111111111111111111111111111

通电后地址线可能产生2的32次方个二进制序列,就可以产生2的32次方 个内存编号

 (3)那么这样一个内存单元地址是多大

计算机有很多单位 bit(比特位)- byte(字节)- KB - MB - GB  

每个内存单元是以一个字节划分的—一字节=8bit

(4)使用 & 操作符取地址

int main( ) 
{
	int a=10;//申请四个字节的空间  
	 //怎么知道a变量存放在地址哪个地方?如何拿地址? 
	// &a取地址操作符 
	printf("%p/n",& a); 
	return 0;
}

(5)如何存放地址

int main( ) 
{
	int a=10;//申请四个字节的空间 
	//有一种变量是用来存放地址的——指针变量 
	int* p=&a;  // 将地址存入p,p就称为指针变量 p的类型用 int* 定义  
	printf("%p\n",& a); 
	printf("%p\n",p);  //返回的是已存入的a的地址 

	return 0; 
}

(6)修改保存过地址后函 数的的值 *p —解引用操作符

int main( ) 
{
	int a=10;//申请四个字节的空间 
	int* p=&a;    
	*p=20; //找到p下存的地址a的值,把值改为20 
	printf("%d\n",a); 
	return 0; 
}

总结:变量都有地址,取出变量地址如下

int main(){

int a=10;

&a;//&—取地址操作符

printf(“%p”,&a);//打印地址,%p —以地址的形式打印

return 0; 

}

地址如何存储,需要定义指针变量

int main(){

int a=10;

int *p; //p为一个整型指针变量

p=&a;

return 0;

}

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值