当前位置:网站首页>Part 1 - Chapter 2 pointer operation
Part 1 - Chapter 2 pointer operation
2020-11-08 19:28:00 【Li Lihao】
stay C In language , For any type T, Can be in T A corresponding variable containing the address of the object is generated at the memory address where it is located . This variable , It's actually a variable that points to an object , therefore , These variables are called The pointer .
Pointers are precise and efficient tools for building data structures and manipulating memory .
Chapter structure
- Pointer basis
- Storage allocation
- Arithmetic operations on data sets and pointers
- As a pointer to a function parameter
- The pointer to the pointer
- Generic pointers and type conversions
- A function pointer
Pointer basis
A pointer stores the address of the data in memory, not the data itself .
The best way to understand pointers : Charting .
- The pointer is usually linked by position with arrows , Instead of drawing the actual address in the icon .
- When the pointer complements any data ,, That is, the pointer is set to NULL when , Use two vertical lines to show .
- Dangling pointer : Pointer to an invalid address .
Some examples of errors that may result in dangling pointers : Cast any integer variable into a pointer variable ; Manipulating pointers that exceed the bounds of the array ; Release one or more pointers that are still referenced .
Storage allocation
The size of pointer variables is usually related to the compiler settings and some specific C Implementation of the Type qualifiers of .
- You must remember : When you declare a pointer , It just allocates space for the pointer itself , There is no space allocated for the data referenced by the pointer .
by Data allocation space Two methods of :
- (1) Declare a variable directly
- (2) Dynamically allocate storage space at runtime ( for example : Use malloc or realloc).
When you declare a variable , What happened?
When you declare a variable , The compiler will reserve enough memory space according to the type of variable .
The storage space of variables is automatically allocated by the system , But this storage space does not exist permanently throughout the life cycle of the program .
The automatic variable is A variable whose storage space can be automatically allocated and released when entering or leaving a module or function
stay C In language , When you want to dynamically allocate storage space , You get a pointer to a heap storage space ( The first 3 Chapter ), This storage space is managed by us , And it will always be there , Unless we explicitly release it .
As a pointer to a function parameter
stay C The function in the call language plays an important role . most important of all , Pointers support passing parameters as references to functions ( Call by reference ).
When passing parameters by reference , When the function changes this parameter , The value of the changed parameter will always exist , Even after the function exits . When a pass function is called by value , At this point, the value change can only last until the function returns .
It is an efficient way to pass large and complex function parameters with pointers : Because it's just passing a pointer instead of a full copy of the data into the function , This can greatly save memory space
Call the pass function by reference
版权声明
本文为[Li Lihao]所创,转载请带上原文链接,感谢
边栏推荐
- Summary of rendering of water wave and caustics (etching) in webgl
- AI perfume is coming. Will you buy it?
- To introduce to you, this is my flow chart software—— draw.io
- Liteos message queuing actual combat
- 微信小程序相关
- An online accident caused by improper use of thread pool
- Using k3s to create local development cluster
- MongoDB增删改查操作
- Dynamic query processing method of stored procedure
- experiment
猜你喜欢
随机推荐
Dynamic ReLU:微软推出提点神器,可能是最好的ReLU改进 | ECCV 2020
Framework - SPI four modes + general device driver implementation - source code
如果把编程语言当武功绝学!C++是九阴真经,那程序员呢?
Not a programmer, code can't be too ugly! The official writing standard of Python: pep8 everyone should know
jsliang 求职系列 - 07 - Promise
awk实现类sql的join操作
Django之简易用户系统(3)
Part I - Chapter 1 Overview
Hello world of rabbitmq
C / C + + knowledge sharing: function pointer and pointer function, can you understand after reading this article?
Dynamic relu: Microsoft's refreshing device may be the best relu improvement | ECCV 2020
How to deploy pytorch lightning model to production
Common memory leakage scenarios in JS
Summary of rendering of water wave and caustics (etching) in webgl
选择排序
在Python中创建文字云或标签云
Solution to cross domain problem of front end separation
Why need to use API management platform
The interface testing tool eolinker makes post request
不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8