C语言第九章 指针开篇

C语言之指针初步

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char *argv[]) {
	
	//指针的基本概念详解
	//一.总述:
	//静态存储区:动态存储区:。。。不同变量会保存在不同的存储区里 
	//a)有些变量的内存 是在编译时分配的
	//b)有些变量的内存 是在程序运行时分配的 
	//但不管怎么说 变量都是会占用一段内存空间的
	//int float double char 都占用一定的内存空间的 sizeof(类型)
	int isize = sizeof(double); 
	printf("isize:%d\n",isize); 
	
	//二.地址的概念
	//传统生活中 我们表示一个地址 可以用文字描述
	//XXX市XXX区XXX路XXX号:是一堆人能看懂的文字 确实能代表一个真实的地址
		//如果我们按照这个找的话 肯定能找到一个实际的地理位置
	//计算机中的地址什么意思呢?
	//其实跟我们人类社会中地址基本一个意思
	//计算机中 使用一个数字来描述一个地址 比如1000(十进制数) 
	//计算机比较喜欢十六进制数来表示地址
		//比如1000这个地址 :0x3E8 (都是0x开头的):如果去内存中去找1000这个数字所代表的地址 我就能找到
	
	//总结起来:地址这东西,在计算机中,其实 这就是一个数字 代表一个内存位置而已 就这么简单 
	//严格区分:地址和地址中内容的区别
	int i = 5,j = 6;//int四个字节 这个5就保存在这四个字节里 
	//程序内部会维持着一张表 
	//	1000---  i(int)
	//	1003---  j(int)
	//用地址值联系i,j和5,6 
	printf("i:%d\n",i);//直接访问 
	//比如说在这里地址值是1000,但是这里地址值所存的内容是5 
	
	//三.直接访问和间接访问
	//直接访问:按变量地址存取变量值 
	//间接访问:将变量i的地址存放在另一个内存单元中
		//在C语言中,我们一般定义int char float这些变量 我们一般用这些类型的变量来进行存"值"
		//我们也可以定义特殊的变量这种特殊的变量用来保存地址
	//假设我们定义了一个变量mypoint 来存放"整型变量的地址"
		//大家注意:虽然特殊变量是保存地址的,但是他也分保存到什么类型的
	//如下语句:
	//mypoint = &i; //这就把变量i的地址保存到了mypoint当中	
					//理解成:mypoint指向了i 所谓指向:就是把通过地址体现
					//他存的是地址值也就是1000 
	
	//大家注意:虽然这个mypoint是用来存放整型变量i的地址的 mypoint这种特殊变量本身在内存中有地址 所以它本身就是占内存的
		//这种特殊变量mypoint一般是占四个内存的
	 
	//间接访问 我们就有了间接的访问手段
	//a)先找到存放i的地址的这个内存位置,(3000~3003) 也就是mypoint的内存地址 从这四个字节的内存中,取出i的地址(1000); 
		//因为我们知道mypoint他里边保存的是整型变量i的地址,整型变量占得是4个字节 这表示1000这个地址开始的是4个字节里边是个整型数据
		//那么我们就从1000开始取得4个字节数据,也就是这个5;这个就是i的值;这个就是所谓的间接访问
		
	//确定一个概念:
	//指针变量:如果一个变量,比如mypoint,专门来存放另一个变量的地址,则称这个变量为"指针变量";mypoint就是个指针变量
		//指针变量的值(也就是其中存放的值) 是个地址 (指针)
		//有人叫地址也叫指针
		//指针变量:"指针变量"和"地址/指针"两个概念 指针就是个地址(也用数字表示) 
				//指针变量是存放其他变量地址的变量,也叫该指针变量指向某某变量(比如这里的mypoint指向i); 
	 
	
	 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值