09 C++从入门到精通

09 C++从入门到精通—指针初步

1.地址与指针

指针是一个既简单又复杂的东西,用得好会让程序更灵活,用不好程序会一团糟。

地址:地址就是内存区中对每个字节的编号
指针:指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。

2.变量与指针

前面讲过指针是一个存放地址的变量
指针变量和其他变量一样都有类型名,同种类型的指针只能指向同种类型变量的地址
指针的一般形式如下

//类型说明 * 变量名
int *p;
char *c; 
int* a,b,c; //同时定义指针变量a,b,c
// "*"表示该变量是一个指针变量,类型说明本指针变量所指向的变量的数据类型

既然是变量,那就可以赋值
C++提供了地址运算符"&“来表示变量的地址,就好像scanf(”%d",&i);一样
指针变量赋值有两种方法

  • 1.定义指针变量的同时进行赋值
#include<iostream>
using namespace std;
int main(){
	int a=100;
	int *p=&a;
	cout<<p<<endl; //输出指针地址
	cout<<*p<<endl; // 输出指针所指向的变量的值
	return 0;
}

  • 2.先定义指针之后再赋值
#include<iostream>
using namespace std;
int main(){
	int *p;
	int a=100;
	p=&a;
	cout<<p<<endl; //输出地址
	cout<<*p<<endl;
	return 0;
}

3.指针的自加自减

你以为指针的自加自减和一般变量的自加自减一样,简单的变量加1或减1
那你就错了,指针加1就是指向下一个存放同种类型的地址,指针减1就是指向上一个地址,加2和减2就是指向下两个或上两个地址

#include<iostream>
using namespace std;
int main(){
	int a=100;
	int *p=&a;
	cout<<p<<endl;
	cout<<"-------华丽的分割线-------"<<endl;
	p++; //指向下一个地址,int类型是4字节,地址值应该加4
	cout<<p<<endl;
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值