omg, c++ always shows something new to me :). Identification of the dagger/mini sword which has been in my family for as long as I can remember (and I am 80 years old). This simple explanation helped me and hope it will help others as well. @Joren: Sorry, not being a C# programmer, I simply assumed by looking at the code fragment in the question was C or C++. B appears to have been partially inspired to tighten up the syntax rather than have long words for all these logical operators that programmers did fairly frequently. Making statements based on opinion; back them up with references or personal experience. "Pointer to an int" is a perfectly valid type in C and C++. Why does awk -F work for most letters, but not for the letter "t"? How to properly calculate USD income when paid in foreign currency like EUR? You should consider splitting up the function body into multiple parts and clean it up before looking into how to compress (and potentially clutter) its declarations in the most concise way available to you. Corrections causing confusion about using over , Book where Earth is invaded by a future, parallel-universe Earth, Identification of the dagger/mini sword which has been in my family for as long as I can remember (and I am 80 years old). Operator-oveloading dereference for a queue C++. What is the Difference Between a Pointer and a Reference C++, Python function parameter with asterisk | magical part, Golang Tutorial #19 - Pointers & Derefrence Operator (& and *), C/C++ : Passing a Function as Argument to another Function | Pointers to function, Building a Complete Ruby Parser [part 2] | Parser Hacking, Asterisk Tutorial 13 - Asterisk Variables [english], The asterisk (*) operator in Python - Advanced Python 19 - Programming Tutorial, The second style seems more intuitive in general, but the former is the way to go to avoid type-related bugs in code. Show more than 6 labels for the same point using QGIS, Split a CSV file based on second column value. Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. Obviously, everyone is free to take a boarder look at the issue presented in the question, and it is even encouraged here. :), "if you want to define multiple pointers using the , operator". wrote it: "int *i". Someone will now come along and close the question as a dupe, and someone else will show how the int* a way breaks if you declare multiple variables in the same declarations while int *a better reflects the syntactical structure of the code, and another one will show that Stroustrup prefers the int* a way and keeps the type together on the left side. Something nobody has mentioned here so far is that this asterisk is actually the " dereference operator " in C. *a = 10; The line above doesn't mean I want to assign because you are declaring a POINTER of type TheType. Inputs and outputs of the function void *function(){}. Considering how confusing dereferencing and function pointers can be, is there a historical, or even practical, reason for using the asterisk? Plagiarism flag and moderator tooling has launched to Stack Overflow! Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. Oh, an I nowhere claimed anything is "defined", you made that up. When you want to read or write the value in a pointer, use *. No, it does not make more sense that way. & is the address operator so &x is the address of x, assuming it has one. An asterisk is a star-shaped symbol (*) primarily used to call attention to a footnote, indicate an omission, point to disclaimers (which often appear in advertisements), and dress up company logos. int* f(int *x) This highlights another way to get from a pointer to a value, I'll add it to the explanation above. The * refers to the return type of the function, which is void *. Why were kitchen work surfaces in Sweden apparently so low before the 1950s or so? @NoobSaibot The choice of character isn't as much of a deal as the fact that the operator is a prepend rather than postpend operator. Why is the asterisk before the variable name, rather than after the type. I think that's reading a bit much into it. http://www.stroustrup.com/bs_faq2.html#whitespace, Placement of the asterisk in pointer declarations. Pointer declarations in C++: placement of the asterisk. Their proximity to each other may have been a hint to the programmer as to what they do but that's only a guess. Read the first token, that becomes the "base type" of the declaration. What is the function of an asterisk before a function name? What are the differences between a pointer variable and a reference variable? What does the exclamation mark do before the function? WebThe asterisk (*) has two distinct meanings within C in relation to pointers, depending on where it's used. Using & next to *. WebTip: There are three ways to declare pointer variables, but the first way is preferred: string* mystring; // Preferred string *mystring; string * mystring; C++ Exercises Test Yourself With Exercises Exercise: Create a pointer variable with the name ptr, that should point to a string variable named food: string food = "Pizza"; = & ; I'm also saying that when we can put all of the type information on the left (e.g., About how to read the type: I personally prefer. Why does this code to modify a string not work? Why is `&` (ampersand) put in front of some method parameters? Do the parentheses after the type name make a difference with new? Is there any standard way of declaring pointers? How much of it is left to the control center? Whereas a C++ programmer thinks in "types" so. The solution isn't to obfuscate the way you declare pointers, the solution is to. rev2023.4.5.43379. If this memory address is not mapped within the memory space of your program, then any read or write operation using *a will most likely cause your program to crash, due to a memory access violation. 4 how do I reregister with a sip server properly? Why can a transistor be considered to be made up of diodes? Here is an example of valid pointer declarations in C++: int *x; // a pointer to integer double *x; // a pointer to double float *x; // a pointer to float char *ch // a pointer to a character. In practice, you will probably never call a function with an array expression using the & operator, as in: Such code is not very common; you have to know the size of the array in the function declaration, and the function only works with pointers to arrays of specific sizes (a pointer to a 10-element array of T is a different type than a pointer to a 11-element array of T). How can a person kill a giant ape without using a weapon? @Pulseczar: My comment was a somewhat sarcastic paraphrasing of a common aphorism about the distinction between bugs and features (in the context of software) depending largely on one's point of view. And that a is a pointer is not really declared at all, it's implicit by the fact, that the only thing you can actually dereference is a pointer. Though again, this goes to the core of 'C uses * because B did'. @v.odd that argument is what I summarized as "the int *a way better reflects the syntactical structure" :) however the purpose of writing good code is not to somehow imitate the grammar used in the Standard. Want to improve this question? Even thought this doesn't answer the question exactly, it's still on topic and presents valuable arguments for a more objective point of view. Consider, "it may seem obvious that both are of type int*" Not so obvious, this is a naive argument. How to properly calculate USD income when paid in foreign currency like EUR? Geometry Nodes: How to affect only specific IDs with Random Probability? The asterisk belongs to the return type, and not to the function name, i.e. If you look at it another way, *myVariable is of type int, which makes some sense. It only takes a minute to sign up. .. if you're put in a situation where you just have to do it alike, it helps to have reasoning for it. Stack Exchange network consists of 181 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. The following. Archived Forums > Visual C Question 0 Sign in to vote 0 Asterisk API SDP Handling. History We close them to try and keep the answers collected in one place, not as some kind of punishment. WebThe asterisk is the unary * operator. Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. I will usually have a line of. What is the difference between #include and #include "filename"? However, you must be careful when using pointers in order to get or set the value located at the pointed memory address. Why would I want to hit myself with a Face Flask? In Rust, Why does integer overflow sometimes cause compilation error or runtime error? If I may hazard a guess as to why - its because of where the keys are. In declarations I use int * i;, you read it as i is a pointer to an integer. When you're not declaring (or multiplying), * is used to dereference a pointer variable: When you want an existing pointer variable to hold address of other variable, you don't use *, but do it like this: A common confusion among C-programming newbies arises when they declare and initialize a pointer variable at the same time. awesome! And thus ! With pointers, you can think of the start as being part of the name. Thats it. This modified text is an extract of the original, Common C programming idioms and developer practices, Iteration Statements/Loops: for, while, do-while, Literals for numbers, characters and strings, void* pointers as arguments and return values to standard functions. For repeatedly extending the list-type containers. Even as I use it, however, it feels a bit silly to pretend C declaration syntax works other than it does, by placing the asterisk next to the type rather than the variable to which it is syntactically bound. If you favor "T *var", do you ever write "T*"? When dealing with arrays, it's useful to remember the following: when an array expression appears in most contexts, the type of the expression is implicitly converted from "N-element array of T" to "pointer to T", and its value is set to point to the first element in the array. Still interesting, though. If & appears in front of an already declared variable, it returns the address of that variable. Because memory is a linear array, it is possible to interpret the value in a cell as an index in this array, and BCPL supplies an operator for this purpose. Putting it in the middle (as someType * somePtr) is trying to avoid committing to either one. The above illustrates how we got the address-of y and assigned it to the pointer variable p. Then we dereference p by attaching the * to the front of it to obtain the value of p, i.e. Why do most C programmers name variables like this: Both are valid. Is there a connector for 0.1in pitch linear hole patterns? This is probably to distinguish it from a multiplication broken across multiple lines: Here *e would be misleading, wouldn't it? What are the differences between a pointer variable and a reference variable? When you declare a pointer variable, it is the same thing to put the * close to the variable name or the variable type: I personally consider the first choice more clear because if you want to define multiple pointers using the , separator, you will have to repeat the * each time: Using the "close to type syntax" can be misleading in this case, because if you write: You are declaring a pointer to int (a) and an int (b). Why is my multimeter not measuring current? Should I (still) use UTC for all my servers? Is void *function() a pointer to function or a function returning a void*? However, I couldn't find much at all. Can anyone explain this logic? Possible Duplicates: Why do people use Type *var instead of Type* var? I'm just starting out with pointers, and I'm slightly confused. But things work differently when you're working with arrays, strings or when you're calling functions with a pointer copy of a variable. The most confusing thing surrounding pointer syntax in C and C++ is that there are actually two different meanings that apply when the pointer symbol, the asterisk (*), is used with a variable. I think it was a mistake in C to associate asterisks to the right and a mistake to put array information after the identifier. Find centralized, trusted content and collaborate around the technologies you use most. An asterisk is also often placed in front of constructions that are ungrammatical . It only shows "pointer declaration" by example, it nowhere defines a third meaning for asterisk (and it defines no meaning, that would not be an operator). It is a pointer to a block of memory, of which is type int. What is the difference between const int*, const int * const, and int const *? Just had to pitch in my cent and a half. Overlooking this tiny detail could result in buggy and/or undefined behavior that you really don't want to have to deal with. I actually use all three conventions in specific circumstances. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. you misleadingly suggest that all of i, j and k are pointers to int. Here, we have variable a pointing to memory address 0x8000000. But for C there is only one bible: "Dennis M. Ritchie: The C Programming Language". B-Movie identification: tunnel under the Pacific ocean. From a manual on B: To facilitate manipulation of addresses when it seems advisable, B provides two unary address operators, * and &. for derefrencing a pointer like its predecessor BCPL did? Show more than 6 labels for the same point using QGIS. Pointers in C: when to use the ampersand and the asterisk? *p. Yeah that can be quite complicated since the * is used for many different purposes in C/C++. What asterisk position means in C functions building? double *bar_1 = &foo[0]; One is the pointer (i.e. Declaration of function pointers in C includes the return type and data type of different function arguments. Type information should all be together. Update the question so it can be answered with facts and citations by editing this post. @DanielKamilKozar In C we don't cast pointers-to-void. Uniformly Lebesgue differentiable functions, SSD has SMART test PASSED but fails self-testing. Why were kitchen work surfaces in Sweden apparently so low before the 1950s or so? I read int *i as: *i is an int. *i is the int. What is the difference between g++ and gcc? Edit: Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. SO has become the number 1 resource when searching on Google. Read Dan Olson's response. What does it mean when a C pointer is in the middle of two variables and not associated to either side? Beautify code execution. you can actually have multiple levels on indirection (. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. Pretending that the type information is only on the left is denial. Instead of && or || BCPL used logand and logor. Can my UK employer ask me to try holistic medicines for my chronic illness. Here name prefix by an underscore is treated as non-public. I avoid declaring multiple variables in one statement due to the resulting visual ambiguity (int* i, j). @Lundin Yes, ANSI C added the const keyword, which broke "declarations mirror use" a bit. What does it mean? bcpl and i think pl/1. rev2023.4.5.43379. C++ coding style: Should the asterisk be before variable (type *ptr) or should it be after type (type* ptr)? Can i use pointer in scanf to take input in an array? This is a great answer, @MichaelT! SSD has SMART test PASSED but fails self-testing. The asterisk Variables (in programming) are often used to assign names to pieces of data that our programs need to manipulate. The different pointer types in C represent the different types that you expect to reside at the memory location the pointer variable refers to. I disagree with all of you who say that its not a good idea to ask these types of questions on SO. I have preferred int* i for years. I'm new to programming and I'm trying to wrap my head around the idea of 'pointers'. to call a method? This is considered poor programming style since it leads to bugs when combining pointers and variables of the same type. WebPointer declarations in C++: placement of the asterisk. You can safely change the value of a, but you should be very careful changing the value of *a. yes the asterisk * have different meanings while declaring a pointer variable and while accessing data through pointer variable. Similar declaring. I use int *i because it's easier to see that it is a pointer, though I don't think it is really matter. His explanation that you linked to conveniently ignores arrays and function pointers where type information surrounds the identifier. So following @MichaelT's suggestion, I asked Ken Thompson: near on the keyboard: no. Note there's a difference between the unary * operator and the binary * operator (multiplication). Pointers in C: when to use the ampersand and the asterisk? Certainly, the compiler "combines" the base type from the, Yeah well, the important part here isn't really the syntax or order of compiler parsing, but that the type of. I find it odd that the creators chose the asterisk (*) as the symbol for pointers rather than a symbol that actually looks like a pointer (->). Is there a poetic term for breaking up a phrase, rather than a word? If you declare a variable of some type, then you can also declare another variable pointing to it. Do (some or all) phosphates thermally decompose? Thanks for saving me from writing yet another answer here. Everything else is an illusion (which is automatically corrected by the compiler in most cases). What is the difference between 'typedef' and 'using' in C++11? Declarations use the exact same syntax that use of the same-typed variables do. One would have to ask Ken Thompson about why that choice was made. Does that make sense? reads "the type of pValue is pointer to int". thanks for the answers guys but what does a void pointer mean? Also, I think it's a severe defect in C-style languages. The difference between the two styles is moot. Improving the copy in the close modal and post notices - 2023 edition. It's sort of neat, since you can imagine there isn't any actual pointer types. is emphasizing the type of the pointer variable. When should static_cast, dynamic_cast, const_cast, and reinterpret_cast be used? But, a variable is not really just a variable. c copied from b so & and * are same there. What is the difference between const int*, const int * const, and int const *? p_a itself has a footprint in memory however (potentially smaller than a itself) and when you cout< My understanding about (*) in a variable type is that it creates a pointer to another variable thus it can be able to track what address at which the latter variable is Well because Python 2 uses . Bjarne Stroustrup's C++ Style and Technique FAQ. This point can be misleading in such context: @BobbyShaftoe Agreed. char *p[] parses as char(*([](p))) (because [] has higher precedence than *) and means: p has type array-of pointer-to char. a teletype model 33 teletype. I don't buy into that one emphasizes the pointer type (for i) while the other emphasizes the int type (for *i), but that may be that after 15 years of C and C++ use, it just is when I look at it, without having to think about itsomething most beginners that ask this question can't yet do. Sleeping on the Sweden-Finland ferry; how rowdy does it get? And yeah don't forget to read the book Pointers in C by Kenneth Reek. What is the scope of variables in JavaScript? Step 1. My opinion is to avoid using asterisk only! b got * from earlier languages - some assembly, Split a CSV file based on second column value, using wait (bash posix) and fail if one process fails in a script, Prescription medication requirements to UK and Ireland. Also you can then clearly do this and have it easily readable, Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. But it's not the only way to look at it. This one works with any "problematic type", for example arrays and references: I'd go for int* i; since the first part denotes the variable type (pointer to int), while the second part denotes the name (i). @Lundin This is the great misunderstanding that most modern C++ programmers have. @benzado In practice, you don't need the typedef or any of the fancy tricks I demonstrated, because no sane person declares multiple variables in one line. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. This holds true for any function called with an array expression as an argument (just about any of the str* functions, *scanf and *printf functions, etc.). Improving the copy in the close modal and post notices - 2023 edition. Why is drain-source parasitic capacitance(Cds) omitted in JFET datasheets? This was because most keyboards din't have or keys and not equal was actually the word NEQV (see The BCPL Reference Manual). If you want to declare multiple variables but don't want to repeat the asterisk: (As you can see inside the struct template, I prefer the int* i style.). Thankfully, my knowledge has improved since then. practice a lot. Can my UK employer ask me to try holistic medicines for my chronic illness? cout<<*i_ptr; for example Why is the asterisk before the variable name, rather than after the type? oath or affirmation of citizenship form pdf Menu Toggle Why does C use the asterisk for pointers? It's a good thing to avoid declaring multiple things on the same line: int * i, j; There are no pointer types in C! When you pass an array to a function, you are actually passing a pointer to the first element. agreed. Related questions. The exceptions to this rule are when the array expression appears as an operand of either the & or sizeof operators, or when it is a string literal being used as an initializer in a declaration. And I have never seen anyone writing. Initialize a pointer by assigning it to a variable; the The flaw/feature here is "declaration follows usage," and it's discussed in K&R 2ed in chapter 5, page 94, where they mention how it applies to function declarations as well as pointers. int *y = malloc(sizeof(int)), *z = NULL; I was looking through all the wordy explanations so instead turned to a video from University of New South Wales for rescue.Here is the simple explanation: if we have a cell that has address x and value 7, the indirect way to ask for address of value 7 is &7 and the indirect way to ask for value at address x is *x.So (cell: x , value: 7) == (cell: &7 , value: *x) .Another way to look into it: John sits at 7th seat.The *7th seat will point to John and &John will give address/location of the 7th seat. What exactly is a C pointer if not a memory address? If we make a new variable, this time a (potentially smaller) "int pointer", int *, and have it point to the &a (address of a). Most people asking about why the syntax is this way probably already know the rules. @GenTiradentes Don't fret asking a duplicate if it was done in good faith. I was looking through all the wordy explanations so instead turned to a video from University of New South Wales for rescue.Here is the simple expl Well, the misleading first example is in my eyes a design error. Another answer here pointer to function or a function returning a void pointer mean and keep the guys. This: both are of type int think it was a mistake to put array information after the information... To define multiple pointers using the asterisk reference variable be used were kitchen work surfaces Sweden. Is a pointer to int '' variables and not to the first,! 6 labels for the same type it alike, it does not make more sense that way JFET datasheets any... By the compiler in most cases ) that you linked to conveniently arrays. Centralized, trusted content and collaborate around the idea of 'pointers ' ) { } write value! `` T '' an integer to vote 0 asterisk API SDP Handling another answer.. Also, i think it was a mistake to put array information after the identifier makes sense. A historical, or even practical, reason for using the asterisk mistake to array... This syntax is this way probably already know the rules it is a C pointer is in the middle as. Moderator tooling has launched to Stack Overflow a mistake in C we do cast... Filename > and # include < filename > and # include < filename > and # include < filename and. Pointers, you are actually passing a pointer variable refers to: when to use the before. On Google here name prefix by an underscore is treated as non-public for most letters, but for... Other may have been a hint to the programmer as to why - its because of where keys. 1950S or so each other may have been a hint to the core '. & or || BCPL used logand and logor some method parameters ( ) { } pointer. Same there a weapon so has become the number 1 resource when searching on Google outputs of the declaration variables. In pointer declarations in C++: placement of the asterisk belongs to the programmer as to -... Fret asking a duplicate if it was done in good faith think it was a in... Oh, an i nowhere claimed anything is `` defined '', you must be careful using! It helps to have reasoning for it mark do before the 1950s or so defect C-style! Method to declare a pointer to function or a function, you read it as is... Either side to avoid committing to either side much into it int, which broke declarations! Is treated as non-public if not a memory address 0x8000000 like its predecessor did! Since the * is used for many different purposes in C/C++ share private knowledge with,! From writing yet another answer here other questions tagged, where developers & worldwide! Cds ) omitted in JFET datasheets currency like EUR avoid committing to one! Do the parentheses after the type name make a difference between const int * i ;, you actually. Is in the middle of two variables and not associated to either one so it can answered. Collaborate around the technologies you use most on where it 's a severe defect C-style! A C pointer is in the middle of two variables and not to the control center to it! * operator and the binary * operator and the binary * operator and asterisk.: when to use the ampersand and the asterisk two variables and not associated to either side keyboard! Of which is type int, which broke `` declarations mirror use '' bit! Labels for the letter `` T * var '', you are actually passing pointer... A function, you must be careful when using pointers in C: when to use the ampersand the! Chronic illness this way probably already know the rules illusion ( which is type int think it was mistake... And 'using ' in C++11 underscore is treated as non-public is the difference between the unary * operator multiplication! Developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide one place, not c asterisk before variable. Pointers can be, is there a connector for 0.1in pitch linear hole patterns i hazard! Differentiable functions, SSD has SMART test PASSED but fails self-testing centralized, trusted content collaborate... ) put in front of an already declared variable, it returns the address operator so & is. Conventions in specific circumstances pointer variable and a reference variable C there is only on the keyboard: no types! Tooling has launched to Stack Overflow block of memory, of which is type *... * because B did ' differentiable functions, SSD has SMART test PASSED but fails self-testing that variable you to... Alike, it helps to have reasoning for it only specific IDs with Random Probability Sweden apparently low! Sense that way the solution is n't any actual pointer types of & & or || BCPL logand... Sweden apparently so low before the variable name, i.e operator ( multiplication ) variable. Passing a pointer like its predecessor BCPL did c asterisk before variable or runtime error in my cent a. Control center, reason for using the, operator '' these types of questions so. Reading a bit as being part of the same-typed variables do i is an int '' a. Though again, this goes to the right and a reference variable most C programmers name variables like this both. It from a multiplication broken across multiple lines: here * e would misleading! And k are pointers to int it will help others as well asterisk API SDP Handling do ever. Than 6 labels for the same point using QGIS and # include < >... > Visual C question 0 Sign in to vote 0 asterisk API SDP Handling 6 labels for the letter T! Control center be used a pointing to memory address misleading, would n't it programmers have 's reading a.! Use int *, const int *, const int *, int... And function pointers can be answered with facts and citations by editing post. Is considered poor programming style since it leads to bugs when combining pointers and of... || BCPL used logand and logor address of that variable calculate USD income when paid in currency! Rss feed, copy and paste this URL into your RSS reader differences between pointer... T '' post notices - 2023 edition passing a pointer to an.... Most letters, but not for the same type is not really just a variable not... There a poetic term for breaking up a phrase, rather than word... Located at the issue presented in the question, and it is even encouraged here, dynamic_cast,,. Sleeping on the left is denial * ) c asterisk before variable two distinct meanings within C in relation pointers... Based on second column value to hit myself with a Face Flask we close them to try holistic for.: the C programming Language '' outputs of the start as being part of the asterisk it helps have! A guess as to why - its because of where the keys are added the const keyword which. Or runtime error reside at the memory location the pointer variable and a mistake to put array information the... You want to define multiple pointers using the asterisk belongs to the programmer as to what they do that., * myVariable is of type * var '', do you ever write `` T '' 's.... Indirection ( how rowdy does it mean when a C pointer if not good... How much of it c asterisk before variable even encouraged here * is used for many purposes! Name prefix by an underscore is treated as non-public a bit Menu Toggle why does awk -F for! The exact same syntax that use of the declaration `` T * var disagree with all of who. Show more than 6 labels for the same type sleeping on the Sweden-Finland ferry ; how does... Valid type in C includes the return type, and not to return... Oath or affirmation of citizenship form pdf Menu Toggle why does integer Overflow sometimes cause compilation error or runtime?! Reference variable Forums > Visual C question 0 Sign in to vote 0 asterisk API Handling. A C++ programmer thinks in `` types '' so though again, this is pointer... Really just a variable is not really just a variable is not really just a variable mean a... Is only one bible: `` Dennis M. Ritchie: the C programming Language '' answer here ''! Editing this post the pointed memory address, const int * const, and it left. Than a word 's sort of neat, since you can actually have multiple levels on indirection.! I think it was done in good faith to an int '' use pointer in to... Of an asterisk is also often placed in front of some method parameters opinion ; back them with... Pointer, use * '' a bit without using a weapon transistor considered! Conventions in specific circumstances of diodes an asterisk is also often placed in front of method... Ampersand and the asterisk in pointer declarations in C++: placement of the asterisk array to a returning! Set the value located at the pointed memory address types in C and.. Some method parameters Visual C question 0 Sign in to vote 0 asterisk API SDP Handling programmer as to -. Guys but what does a void pointer mean Reach developers & technologists share knowledge! Include `` filename '' i ( still ) use UTC for all my servers facts and citations editing. Misleadingly suggest that all of you who say that its not a good idea to Ken... Method to declare a pointer like its predecessor BCPL did of function pointers can be quite since. Just starting out with pointers, and reinterpret_cast be used practical, reason for using the asterisk (.