C++基础之指针(1)

原创 2016年08月29日 14:21:53

记得在起初学C++时感觉最难懂的就是指针了,今天来把有关的内容整理一下,如有错误望指正,在复习的同时如果能与各位同学交流交流,那是极好的。

1、address

为variable和function分配address的工作是分几步完成的,在compile与link的过程中,只给各variable分配relative address,而absolute address 要到程序运行的时候才能确定。如果是local variable,那更惨,要到该local variable所属的function被调用时才进行address assign。

所以,同一个variable,多次运行中可能被分配到不同的address,this is why we do not care the exact address of varibles.

2、address的表示

C++规定:

(1)、the address of arry 可以用the arry's name 表示,其address is the address of the first element;

(2)、the address of function 可以用the function's name表示;

(3)、the address of variable可以用operational character “&”求得,for example “&x”。

3、pointer

definition:某个variable的memory address就是该variable的pointer。

pointer也是variable,它的type是其所指向variable的type,pointer variable的值就是其所指variable在memory中的address。

声明形式: 

数据类型* 指针变量名

4、operations of pointer

(1)、“*”、“&”运算

*:指针运算符,返回pointer所指的基类variable的值

&:取地址运算符,返回variable的地址,即指针。

<span style="font-size:14px;">void exc(int*a,int*b)
{
	int tmp;
	tmp=*a;
	*a=*b;
	*b=tmp;
}</span>
#include <iostream>
#include "hello.h"
using namespace std;
int main()
{
	int a=3,b=4;
	cout<<a<<"  "<<b<<endl;
	exc(&a,&b);
	cout<<a<<"  "<<b<<endl;
	return 0;
}
(2)、pointer variable arithmetic operation

只有addition and subtraction!

(3)、pointer variable comparison operation

(4)、pointer variable 的下标运算

#include <iostream>
#include "hello.h"
using namespace std;
int main()
{
	int a[]={1,2,3,4,5};
	cout<<a[2]<<endl;
	int *ptr=a;
	cout<<ptr[2]<<"   "<<*(ptr+2)<<endl;
	return 0;
}


ok,连续写了near one hour的blog,感觉waist也不痛了,legs也不酸了,一口气能上eight floors。今天的blog是为了的刘雨雨小盆友而写的,虽然她疯疯哒像只小monster,但她还萌萌哒呀!

刚才用到waist这个单词就想到了twist,就想到了《SAW》,哈哈宝宝我二刷去惹。


版权声明:本文为博主原创文章,未经博主允许不得转载。

一个不错的shell 脚本教程

一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂! 建立一个脚本   Linux中有好多中不同的shell,但是通常我们使用bash (bourne again she...

C++中,关于#include<***.h>和#include"***.h"的区别

#include直接从编译器自带的函数库中寻找文件 #include""是先从自定义的文件中找 ,如果找不到在从函数库中寻找文件...

C++基础教程(六)——指针(1)

//===================================================== // Name : Pointer1.cpp // Author ...
  • lfdfhl
  • lfdfhl
  • 2014年04月20日 21:53
  • 1395

java基础改学C++(六)指针(1)

java基础改学C++(六)指针(1)

C++指针——(1)指针基础

1.指针变量 指针变量(简称指针pointer),用来保存内存地址的变量。 内存地址中每一个字节都会对应一个唯一的地址。变量往往是由若干个字节组成的,但我们把变量第一个字节起始地址定...
  • polyeer
  • polyeer
  • 2017年01月30日 22:07
  • 25

c++指针的基础讲解

  • 2014年03月25日 11:18
  • 814KB
  • 下载

我的C++指针面向对象基础

  • 2009年09月02日 22:52
  • 1.3MB
  • 下载

C语言基础之指针1

计算机内存被划分为按顺序编号的内存单元,每个变量都位于某个独特的内存单元中,称之为地址。每个内存单元为一字节,不同的数据类型所占用的内存单元数是不同的。假设一个整型数据a=150,占据两个字节,地址为...

c++指针基础

  • 2011年11月02日 21:39
  • 17KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++基础之指针(1)
举报原因:
原因补充:

(最多只允许输入30个字)