C++ dasturlash tili Ko'rsatgichlar, referatlar va dinamik xotira ajratish
Download 267.5 Kb.
|
Язык программирования C
- Bu sahifa navigatsiya:
- 5. * Подробнее о указателях
- Пример
C-строка и указатель
C-string (языка C) — это массив символов, оканчивающийся нулевым символом. Например'\0' /* Testing C-string (TestCString.cpp) */ #include #include using namespace std; int main() { char msg1[] = "Hello"; char *msg2 = "Hello"; // warning: deprecated conversion from string constant to 'char*' cout << strlen(msg1) << endl; // 5 cout << strlen(msg2) << endl; cout << strlen("Hello") << endl; int size = sizeof(msg1)/sizeof(char); cout << size << endl; // 6 - including the terminating '\0' for (int i = 0; msg1[i] != '\0'; ++i) { cout << msg1[i]; } cout << endl; for (char *p = msg1; *p != '\0'; ++p) { // *p != '\0' is the same as *p != 0, is the same as *p cout << *p; } cout << endl; } 5. * Подробнее о указателяхУказатель функцииВ C/C++ функции, как и все элементы данных, имеют адрес. Имя функции является начальным адресом, по которому функция находится в памяти, и, следовательно, может рассматриваться как указатель. Мы также можем передать указатель функции в функцию. Синтаксис объявления указателя функции: // Function-pointer declaration return-type (* function-ptr-name) (parameter-list) // Examples double (*fp)(int, int) // fp points to a function that takes two ints and returns a double (function-pointer) double *dp; // dp points to a double (double-pointer) double *fun(int, int) // fun is a function that takes two ints and returns a double-pointer double f(int, int); // f is a function that takes two ints and returns a double fp = f; // Assign function f to fp function-pointer Пример/* Test Function Pointers (TestFunctionPointer.cpp) */ #include using namespace std; int arithmetic(int, int, int (*)(int, int)); // Take 3 arguments, 2 int's and a function pointer // int (*)(int, int), which takes two int's and return an int int add(int, int); int sub(int, int); int add(int n1, int n2) { return n1 + n2; } int sub(int n1, int n2) { return n1 - n2; } int arithmetic(int n1, int n2, int (*operation) (int, int)) { return (*operation)(n1, n2); } int main() { int number1 = 5, number2 = 6; // add cout << arithmetic(number1, number2, add) << endl; // subtract cout << arithmetic(number1, number2, sub) << endl; } Download 267.5 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling