指针学习(1)

指针是C和C++中和重要的组成部分,怎么理解指针呢?首先来看一下内存、指针和变量的关系。

内存可以比作是很多很多已经编号了的小球,你想用内存的时候就要知道小球的编号。比如说int i,这是一个整型变量,占用4个字节。如果每一个小球就是一个字节的话,那么就需要使用四个小球。变量连续的存储在内存中。

程序代码进行执行的过程中,比如在执行两个整型变量i、j相加的时候,首先去寻找 i 的首地址,从该地址开始读取4个字节的数据放入CPU中,然后去寻找 j 的首地址,再从 j 首地址开始读取4个字节数据存入到CPU中,然后再跳入到加法中断中进行计算。

内存清楚之后,再来看指针。很简单,地址指向内存中的字节,这个地址就是指针。一个变量的地址就是这个变量的指针。如果说A变量存放着B变量的地址,那么A变量就是指针变量,即指针。

首先来看一个指针:

int *p;

int i = 100;

p = &i;

p是指针变量名,&为取地址符号。p = &i 就是取 i 的地址给指针变量 p 。

对于指针来说,一定要有一个明确的地址指向。不可以对指针变量 p 进行直接赋值,更不可将*p当作变量来使用。

#include<iostream>
using namespace std;
void main()
{
	int i = 100;
	int* p;
	*p = 100;     //当作变量来使用*p时
	printf("%d", p); //输出地址,出错语句
	printf("%d", *p);//输出指针指向的值,出错语句
}

 这是一段错误代码,原因在于*p被当作变量来使用了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值