Day21

今天继续看指标与阵列陷入深深地不知该如何写心得中,指标*ptr是专门用来指向物件记忆体位置的类型。在C++中阵列跟指标有密不可分的连结,参考蚂蚁书的介绍一个int v[5]阵列的结构可以用下图表示,而阵列名称v就是永远指向v[0]记忆体位置的指标,因为v本身是指标所以可以直接丢给*ptr并透过修改*ptr的记忆体位置即ptr进一步取阵列的每个元素的值,程序码如下

int main(){

    int v[5] = {1,2,3,4,5}; 
    int *vPtr = v ;  //直接将阵列v丢给指标
    cout << vPtr  << endl ;               //3000
    cout << *( vPtr  + 2)  << endl ;   // 3
    cout <<  vPtr  + 2  << endl ;    //3008
    cout << ++vPtr  << endl ;          //3004,骚操作
    return 0;
}

值得注意的是运算子是有阶级的阶级高的先执行,因为*阶级高於+所以要用括号包起来,若不刮起来 *vPtr+2会变成 v[0]+2,至於为什麽代码写vPtr+2 记忆体位置却+8那是因为int占4个bytes,2*4=8真是令人头昏目眩的写法
https://ithelp.ithome.com.tw/upload/images/20211003/20098886ZAWcReF061.png


<<:  [DAY19]旋转木马(02)

>>:  Day19:19 - 结帐服务(3) - PayPal Python Checkout SDK(1)

python ModuleNotFoundError

python中引用不同文件夹下面的函数的时候,使用了__init__.py依然没有用,後来发现原因:...

[Day 23 - Redux] React + Redux = React-redux

前情提要:在前面的文章有了Redux,状态管理没烦恼,学到了如何在 Redux 透过 Action...

DAY9-JAVA的类别(3)-多载

多载 利用JAVA中的多载,就不需要这麽多的函数来做相同的工作! 那多载到底是什麽呢?其实就是指相同...

LINE BOT聊天机器人-第二步-建立回声机器人

这次要来建立一个我说甚麽你跟着说的机器人。 你需要从刚刚申请的LINE帐号中拿两个东西跟你的程序码做...

结束语&心得

30天一眨眼就结束了呢!每天坚持写一篇文章,下班回家後一边写一边又翻书查找资料,没想到都撑过来了! ...