当前位置:网站首页>Pointer function (basic)
Pointer function (basic)
2022-07-05 04:23:00 【Cao Lele loves learning】
Write a function of pointer type , Return a pointer , however :
This has been explained before :
therefore , When a function is called , Return value , There is no problem ; Because the address space of the return value in the function is before it is released , The value has been assigned to the function name , and The return address When , This address space has been released ( Personal understanding , Not necessarily right ).
There is no problem to return the address :
1、 Set global variables —— Don't suggest
2、 Set static variables —— As the case may be ()
Compare :
Return value :
The return address ( The return value is the function pointer ):
local variable , You cannot return the address and take another value :
To modify the storage type , Make it after the function call , Memory is not released :
attach : String concatenation —— The same data content will be passed , From an address space , Copy to another address space
The function prototype char *strcpy(char *dest, const char *src);
Function pointer exercise : imitation strcat function , Realize your own string connection
Be careful : Priority of self increasing operator > Value priority , therefore *str++ ==> *(str++)
And i++ equally , It's just a variable i, One is the pointer variable *p; In fact, they all use it first , add :
i++ First i Value , then i Value ++
*p++ First *p Value , then p The address of ++
Take it apart and write it :
*str
str++
therefore :*str1++ = *str2++; In fact, that is *(str1++) *(str2++);
It needs to be straightened out :*(str1++) *(str2++); Is not str2 Address increment ,str2 Address increment , And then take str2 Incremented value , Assign a value to str1 The position after the address is incremented . But with a++ = i++ equally
Take respective values first , To assign a value , Then increase the address :
*str1 =*str2;
str2++;
srt1++;
------------------------------------------------------------------------------------------------------------------
practice 2: Imitate string to integer function :atoi.
Write your own integer to string :inttostr
Ideas :
1、 First, use a loop to remainder the integer , And remove the lowest bit
2、 character ’0‘ And integers 0, Difference between 48, That is to say ’0‘
3、 Will screen out each one , Put it in an array ( At this time, it is the opposite , The lowest position ran to the far left )
4、 In exchange for
( because aa[i], After the conversion is complete , An artificial one ’\0‘, therefore i--, Go to the last character aa[i], Find another variable n From an array aa[0] Start swapping , And walk towards the middle .)
therefore :
The penultimate character is exchanged with the first character
The penultimate character is exchanged with the second character
........ With i--;j++; if i=j, Then the data is an odd number ; if i<j, Then the data is an even number
If it's an odd number ,i=j When , Don't move the middle character ; Even number of hours , When i<j When , The two data in the middle have been exchanged .
There's another problem : In the above code , Function defines a static array , The size is fixed ; that , If the parameter passes an array in , Is it better ?
边栏推荐
- A應用喚醒B應該快速方法
- Fuel consumption calculator
- Clickpaas low code platform
- Function (basic: parameter, return value)
- Introduction to RT thread kernel (5) -- memory management
- Threejs Internet of things, 3D visualization of farms (II)
- 基于TCP的移动端IM即时通讯开发仍然需要心跳保活
- Web开发人员应该养成的10个编程习惯
- Ffmepg usage guide
- Sequelize. JS and hasmany - belongsto vs hasmany in serialize js
猜你喜欢
[thingsboard] how to replace the homepage logo
网络安全-记录web漏洞修复
NetSetMan pro (IP fast switching tool) official Chinese version v5.1.0 | computer IP switching software download
User behavior collection platform
Longyuan war "epidemic" 2021 network security competition web easyjaba
kubernetes集群之调度系统
Threejs Internet of things, 3D visualization of factory
线上故障突突突?如何紧急诊断、排查与恢复
Use threejs to create geometry and add materials, lights, shadows, animations, and axes
如何实现实时音视频聊天功能
随机推荐
[untitled]
如何进行「小步重构」?
陇原战“疫“2021网络安全大赛 Web EasyJaba
Threejs Internet of things, 3D visualization of farms (II)
mxnet导入报各种libcudart*.so、 libcuda*.so找不到
Function (error prone)
Sequence diagram of single sign on Certification Center
Serpentine matrix
Fuel consumption calculator
Decimal to hexadecimal
[phantom engine UE] realize the animation production of mapping tripod deployment
Sequelize. JS and hasmany - belongsto vs hasmany in serialize js
A應用喚醒B應該快速方法
Number of possible stack order types of stack order with length n
File upload bypass summary (upload labs 21 customs clearance tutorial attached)
Looking back on 2021, looking forward to 2022 | a year between CSDN and me
Machine learning -- neural network
包 类 包的作用域
Power management bus (pmbus)
A real day for Beijing programmers!!!!!