⑥.3 C语言笔记之 指针两大利器 (volatile的认识、指针传参 )

1.volatile的认识

⑥.3 C语言笔记之 指针两大利器 (volatile的认识、指针传参 )

volatile是个类型修饰符,是为了给指针赋上指定的地址                                             辅助理解:(内存比寄存器更靠近CPU)

在单线程下,假设:a=10,保存到内存里,然后再拷贝一份到寄存器里

下次CPU对 a变量 进行访问时,不从内存访问直接从寄存器直接访问

当a发生变化等于11时,又会将a=11更新到寄存器里面

在多线程下,假设:线程①的a=10,提前放入寄存器中,线程②的a=20

在取值时,不会直接从寄存器里面提取,而是从内存中提取

这样虽然降低了效率,但是提升了正确率。这就是volatile的作用

2.指针传参

⑥.3 C语言笔记之 指针两大利器 (volatile的认识、指针传参 )

解析:第11行在函数ijiajia中,取 i 的地址放入函数ijiajia中

           第3行先定义指针p,并赋值 i 的地址(int *p=&i=10)

           *p是指针变量 存放是别人的地址( i 的地址)

           第5行的 *p 是取内容,(第6行打印的值是 11)

           第12行的指针p与 i  的地址相同,所以第12行打印的值也是11

通俗:运用指针进行传参时,因为指针的地址相同,所以会根据不同情况下进行实时更改