【第22期】观点:IT 行业加班,到底有没有价值?

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》,哈哈宝宝我二刷去惹。


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

相关文章推荐

C++基础教程 学习笔记(二) 数组、字符串和指针

数组是同类型变量的集合体,这些同类型的变量被赋予了一个共同的名称。数组可以具有从一维到多维的多种类型,尽管一维数组是最常见的。数组为创建相关变量的列表提供了一种便利的方法。最常使用的数组是字符数组,因...

找工作笔试面试那些事儿(1)---C,C++基础和编程风格(1)

作者:寒小阳 时间:2013年8月。 出处:<a target="_blank" href="http://blog.cs

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

C++基础教程(五)——指针(2)

//===================================================== // Name : Pointer1.cpp // Author ...
  • lfdfhl
  • lfdfhl
  • 2014-04-20 21:52
  • 1223

C++基础知识 -数组,指针与字符串

1. 数组 声明: int A[10],B[10] 初始化: int a[3]={1,1,1} 对于将全部元素都初始化的情况,可以不用说明元素个数 int a[]={1,1,1} 部分初始化时,必须给出元素的个数 ...

C++基础之TR1库的智能指针

Technical Report 1 是一份规范,描述加入C++标准程序的诸多新技能,以新的class templates 和 function templates 形式体现,针对的题目有哈希表,基于...
  • lilypp
  • lilypp
  • 2011-07-18 18:28
  • 6154
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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