home *** CD-ROM | disk | FTP | other *** search
- //: C08:ConstPointer.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Constant pointer arg/return
-
- void t(int*) {}
-
- void u(const int* cip) {
- //! *cip = 2; // Illegal -- modifies value
- int i = *cip; // OK -- copies value
- //! int* ip2 = cip; // Illegal: non-const
- }
-
- const char* v() {
- // Returns address of static character array:
- return "result of function v()";
- }
-
- const int* const w() {
- static int i;
- return &i;
- }
-
- int main() {
- int x = 0;
- int* ip = &x;
- const int* cip = &x;
- t(ip); // OK
- //! t(cip); // Not OK
- u(ip); // OK
- u(cip); // Also OK
- //! char* cp = v(); // Not OK
- const char* ccp = v(); // OK
- //! int* ip2 = w(); // Not OK
- const int* const ccip = w(); // OK
- const int* cip2 = w(); // OK
- //! *w() = 1; // Not OK
- } ///:~
-