第四章 指针 Pointer(进阶)

第四章 指针 pointer(进阶)

那么我们这次的课程就是学习如何的实现pointer怎么使用pointer。

我们已经知道在pseudo-code如何的declare一个pointer。

Integer myNum

refToInteger myNumPtr

In C++

int myNum;

int *myNumPtr;

Suppose X is any type.

Pseudocode: declare a pointer named ptr using refToX ptr

C++: declare a pointer named ptr using X *ptr

值得注意的是*这个符号是极易弄混的

int myNum;   //This declares an integer

int *myNumPtr;  //This declares a pointer to an integer

myNum = 7;

myNumPtr = &myNum;  //This puts the address of myNum

into the variable myNumPtr

在内存中就会是这个样子

Address  Content

4683953 7       myNum

4683954       myNum

4683955  myNum

4683956  myNum

4683957 4683953  myNumPtr

4683958  myNumPtr

4683959  myNumPtr

4683960  myNumPtr

在这时,我们声明一个integer myNum 为7,这时我们需要有一定的内存空间去储存这个integer,大家也都知道integer的大小为4。

然而,一个pointer的大小也为4,所以在声明的时候也为给指针分配四个内存空间,这个内存空间就是储存着它指向的位置。

在上面的例子中,myNumPtr所存储的值就是它所指向值的address,AKA,4683953。

PS我们必须要知道的是,现在的电脑内存很大所以,在真实情况中一个指针和该指针所指的值相邻是极为罕见的。

这边已经很晚了,所以就先写到这里吧,明天继续

时间: 2024-07-31 11:02:58

第四章 指针 Pointer(进阶)的相关文章

第四章 指针 Pointer(高级)

第四章 指针 pointer(高级) 希望初学者在入门的时候,可以看一些英文的原著,我感觉英文书籍是原意,而一些现在中文的翻译是加上了译者的一些理解,多少是拿来的东西,所以一些东西我希望能够按照自己的来. &A  就是取存放A的位置,我们可以将这个位置复制给pointer variable. *A  从A所指的位置中"提取数值" 接上回,首先取个例子: Algorithm findBigger(x, y) Pre: x, y :: refToInteger are valid 

第四章 指针 Pointer(入门)

第三章 指针 Pointer 我第一次上网求助,就是在pointer方面遇到了问题,对于我本人来说,有些时候reference和de-reference,address.location.value经常会弄混的,就连我的教授都自己坦言,不仅C++的初学者都会在pointer方面遇到这样那样的问题,而且一些从业多年的编程大神也会遇到指针上面的问题. 有一个笑话,当你学会了指针才能懂: 一个编程的人刚刚完成了一个项目的编程,但是有一个bug总是出现,在他苦苦思索之时,平时打扫卫生的保洁阿姨在旁边说:

<深入理解C指针>学习笔记和总结 第四章 指针和数组

数组是一个什么玩意: 数组和指针我的理解,有相同之处也有不同之处.因有相同之处,因此一些资料上说,数组和指针本质是相同的.因有不同之处,因此也有一些资料上说,数组和指针是不一样的. 相同之处: 数组名字和指针名字都代表了一个地址. 如:int num[10];num是数组名.函数开辟了一个存储十个整数类型的空间,而num是他们的首地址. int *p; p=(int *)malloc(10*sizeof(int));类似的,p也指向了首地址. 不同之处是,num[10]中的空间位置是在栈中,而

《深入理解C指针》第四章 指针和数组

2019-12-01 19:07:20 原文地址:https://www.cnblogs.com/JasonPeng1/p/11967221.html

C和指针 (pointers on C)——第十四章:预处理器

第十四章 预处理器 我跳过了先进的指针主题的章节. 太多的技巧,太学科不适合今天的我.但我真的读,读懂.假设谁读了私下能够交流一下.有的小技巧还是非常有意思. 预处理器这一章的内容.大家肯定都用过.什么#include,#define #ifdef #undef这些,可是绝对用的不多.作为全面了解学C,还是应该都看一看. 预处理器使用方法非常讲究,用不好会失误,用好了会大大加快执行时速度(不是编译速度). 总结: C程序的第一个步骤就是预处理.预处理器共包括下面几个符号: 1.#define 定

C和指针 (pointers on C)——第四章:语句(上)

第四章--语句(上) 总结总结!!! C没有布尔类型,所以在一些逻辑判断时候必须用整型表达式,零值为假,非零值为真. for比while把控制循环的表达式收集起来放在一个地方,以便寻找. do语句比while语句类似,但是前者能够保证循环体至少执行一次. 不要用goto. switch...case...在没有加break时候多半有问题,我有一篇文章曾专门说这个事儿. 详情见http://blog.csdn.net/liyakun1990/article/details/24942191 空语句

C和指针 (pointers on C)——第四章:语句(下)习题解答

题目请见 http://download.csdn.net/download/wangpegasus/5701765 第四章以下通过VS2012 1. #include "stdafx.h" double sqrt(double temp) { double before, after; before = 1.0; after = 1.0; do { before = after; after = (before + temp/before)/2; } while (before !=

第四章 数组,字符串和指针

数组 数组若没有指定初始值则为内存遗留值 如果指定了部分初始值,那么其余部分也默认被指定为0: long data[100]={0};          //给data数组的所有元素赋0 字符串是附加有特殊字符(/0)的字符序列 数组的填充: char president[]="thank you"; wchar_t president[]=L"thank you";     //Unicode字符串 const int max=80; char name[max]

第四章 复合类型

第四章  复合类型 4.1  数组 4.1.1  数组简介 数组(array)是一种数据格式,能够存储多个同类型的值. 声明数组的通用格式如下: typeName arrayName[arraySize]; 表达式arraySize指定数组的元素数目,它只能是以下三种情况之一: 1)        整型常数(如10,枚举值也可以): 2)        const值 3)        常量表达式(如8 * sizeof(int)) 注意:使用数组要注意下标的正确.编译器不会检查使用的下标是否有