Detailed description of C ++ function pointers and function pointers
1. function pointer
(1) In general, a function usually includes a series of commands. After compilation, it occupies a block of storage space in the memory.
It has a starting address, which is called a function pointer.
(2) When the main function calls a subfunction, it is to transfer the program to the function entry address for execution
Comparison between several smart pointers in C ++, smart pointersWhen designing these smart pointers, a key issue is the control of ownership. If you compare the object pointed to by the pointer to a TV, the pointer is the audience. When the first person needs to watch TV, he needs to turn it on. When no one needs to watch TV, he must make sure to turn off the TV. For std: auto_ptr, boost: shared_ptr and sc
The C language is often used in the following form when a function is passed.1 void Get (int **p)For this form, I wondered why I could not use *p as a formal parameter. Let's take a look at the code and the results1 void Get(int**p)2 {3printf"%p\n",*p);4*p = (int*)malloc(sizeof(int) *5);5printf"%p\n",*p);6 }7 8 intMain ()9 {Ten int*ptr =NULL; Oneprintf"%p\n", PTR); A Get(ptr); -printf"%p\n", PTR); - return 0; the}From this result you can see that at the beginning PTR is initialized t
#include void Function1 (){printf ("function one without parameters and return values");}void Function2 (char str[2222]){printf ("%s function two parameters no return value", str);}int Function3 (int a, int b){printf ("function three with parameters and return value");return a + B;}int function4 (int a,int b){return a * b;}int main (int argc, char* argv[]){void (*P1) () = function1;void (*P2) (char[]) = function2;Int (*P3) (int, int) = Function3;Int (*p4[]) (int, int) = {Function4,function3};pri
double pointer, init_fnc_t **init_fnc_ptr; How to understand it. You can understand that.
The first qualitative is that this is a pointer, which is a four byte memory unit, where the number is a pointer (
, this pointer points to the init_fnc_t * (that is, the function pointer of the init_fnc_t type). If you analyze
When you do not understand, take char *p the simplest analogy.
How to determine if the pointer assignment is correct. An easy way is to jump to that address and see if the type is a
Early 16-bit computers started a certain segment of memory and the pointer within the addressing range of 2 ^ 16 was called a short pointer, A long pointer is called a long pointer whose addressing range exceeds the preceding range. Because the addressing long pointer needs to change the content of the segment register, there are some differences with the short pointer.
Later, 32 used the "flat" Memory Model for the computer, and there was no need to modify the segment register for addressing
/* 7.13 enter three integers in ascending order (pointers and functions implement switching )*/# Include "stdio. H"# Include "conio. H"Void swap (int * a, int * B, int * C );Void main (){Int x, y, z;Printf ("Enter three integers, Example 1 2 3 \ n ");Scanf ("% d", X, Y, Z );Swap ( X, Y, Z );Printf ("sorted: % d, % d, % d \ n", x, y, z );Getch ();}
void swap (int * a, int * B, int * C) { If (* A> * C) {T = * A; * A = * C; * c = T ;} {T = * A; *
We will define member functions in the class, and we also want to define member function pointers. Therefore, we need to solve three problems: first, how to define the class function pointer, second assignment, and third use.I define a class,Class{Public:Int add (int, int );Int mul (int, int );Int div (int, int );};
Int A: add (int a, int B){Return a + B;}
Int A: mul (int a, int B){Return a * B;}
Int A: div (int a, int B){Return (B! = 0? A/B: );}I wan
1.unique_ptr with the queue, UNIQUE_PTR features: You cannot use copy constructors to copy assignment functions, but you can use the move constructor and move assignment functions.
Using 2.std::move, you can force a left-valued expression to be a right-value expression
3. Overload new operator debugging memory usage, because the mind is not very reassuring (smart pointers really freed me for my memory?) Therefore, you attempted to override the new
Type description
The format of the type description is:
A typedef type definition name;
The type description defines only a new name for a data type rather than a new data type. This type is any one of the data types licensed by Turbo C. The
Union (Union)
1. Joint notes and joint variable definitionsUnion is also a new type of data, which is a special form of variable.The joint description and the union variable definitions are very similar to the structure. In the form of:Union Union
Description and use of array pointer variables
The pointer variable that points to an array is called an array pointer variable. Before we discuss the description and use of array pointer variables, let's clarify a few relationships.An array is
preprocessing directivesAs stipulated by ANSI standards, preprocessing directives mainly include:#define#error#if#else#elif#endif#ifdef#ifndef#undef#line#pragmaAs can be seen from the above instructions, each preprocessing instruction has a symbol "#
2. Differences in structure and union
Structure and union have the following differences:
1. Structs and unions are composed of a number of different data type members, but at any one time, only a selected member is stored in the Union, and all
First, nested structure
A nested structure is one in which the other structure can be included in a struct member, and Turbo C allows this nesting.
For example: The following is a nested structure
struct string{
Char Name[8];
int age;
struct addr
2. Structure (struct)
A structure is a combination of various variables that are composed of basic data types and named with an identifier. Different data types can be used in the structure.1. Structure description and Structure variable
2. Use of structural variables
A struct is a new data type, so a struct variable can be assigned the same value as a variable of another type, and the structure variable is based on a member as the base variable.
Struct members are represented in
3. Character pointer
As we already know, string constants are sequences of characters enclosed in double quotes, such as:
"A String"
is a string constant that consists of a sequence of 8 characters because there is a space character behind the
Enum (enum)
Enumerations are a collection of named Integer constants, which are common in everyday life.For example, the sunday,monday,tuesday,wednesday,thursday,friday,saturday of the week is an enumeration.The descriptions of enumerations are
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.