C++ dasturlash tili Ko'rsatgichlar, referatlar va dinamik xotira ajratish


Download 267.5 Kb.
bet13/14
Sana20.06.2023
Hajmi267.5 Kb.
#1630767
TuriReferat
1   ...   6   7   8   9   10   11   12   13   14
Bog'liq
Язык программирования C

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:
1   ...   6   7   8   9   10   11   12   13   14




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling