Лекция 3 2017 Динамическая память, указатели на функции, символы, строки (с заметками) (Лекции (2017))
Описание файла
Файл "Лекция 3 2017 Динамическая память, указатели на функции, символы, строки (с заметками)" внутри архива находится в следующих папках: Лекции 2017, Лекции 2017. PDF-файл из архива "Лекции (2017)", который расположен в категории "". Всё это находится в предмете "программирование" из 2 семестр, которые можно найти в файловом архиве НГУ. Не смотря на прямую связь этого архива с НГУ, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
ࡏфӐӌӍҺӝ ӎӏӍһӏҸӋӋӄӏӍҺҸӌӄӨсҿӈӗӄӨ ॏ ߟࡈ ߝߢ ӋҸӏӑҸ ߞߜߝߣ һࡏࡏhttp://xkcd.ru/371ࡏࡏщӈҸӃҸӑҿӊӄ ӎӏӍҾӍӊӂҿӌӄҿࡏࡏࡏщӈҸӃҸӑҿӊӛࡈ ӌӄӈӒҾҸ ӌҿ ӒӈҸӃӝҺҸӧәӄӅэӄӐӊҿӌӌӍҿ ӃӌҸӖҿӌӄҿ Ć ࣌࣌ ߜࡏNULL ࡴ ӐӎҿӗӄҸӊӛӌӍҿ ӈӍӌӐӑҸӌӑӌӍҿ ӃӌҸӖҿӌӄҿࡈ ӐӄӋҺӍӊӄӃӄӏӒӧәҿҿࡈ ӖӑӍӒӈҸӃҸӑҿӊӛ ӌҿ ӒӈҸӃӝҺҸҿӑ ӌӄ ӌҸ ӈҸӈӒӧ ӎҸӋӨӑӛࡏ фҹӜӨҺӊҿӌӍ Һ ӃҸһӍӊӍҺӍӖӌӍӋӔҸӅӊҿ stdlib.hࡏint* ptr = NULL;int value = *ptr; // run time error*ptr = 37; // run time errorцҸӃӌӝҿ ӌҸӃҺҸӌӄӨࡈ ӌӍ ӐӒӑӛ ӍҾӌҸ ɯƚǃȒƚȘɾŏɾǞȩȘ ǀŏʕȀɾࡈ ɯƚǃǀŏʕȀɾࡈ ŏżżƚɯɯ ʲǞȩȀŏɾǞȩȘࡈࢀхӏӍһӏҸӋӋҸ ҺӝӎӍӊӌӄӊҸ ӌҿҾӍӎӒӐӑӄӋӒӧ ӍӎҿӏҸӗӄӧࡊࢁࡈ ࡊࡏߟࡏࡏщӈҸӃҸӑҿӊӛࡈ ӒӈҸӃӝҺҸӧәӄӅ ӕӍӑӛ ӈӒҾҸщӈҸӃҸӑҿӊӛ ӑӏҸӈӑӒҿӑ ӒӈҸӃӝҺҸҿӋӍҿ ӐӍҾҿӏӂӄӋӍҿ ӈҸӈ ǞȘɾࡈ ӕӍӑӨ ӌҸӐҸӋӍӋ Ҿҿӊҿ ӑҸӋ ӌҸӕӍҾӄӑӐӨ ƇȩʕųȀƚ ࡴ ӢӑӍ ӎӍӑҿӌӗӄҸӊӛӌҸӨ ӍӘӄҹӈҸࡏvoid* ࡴ ӐӎҿӗӄҸӊӛӌӝӅ ӑӄӎ ӒӈҸӃҸӑҿӊӨࡈ ӈӍӑӍӏӝӅ ӋӍӂҿӑ ӒӈҸӃӝҺҸӑӛ ӌҸ ӊӧҹӝҿҾҸӌӌӝҿ Һ ӎҸӋӨӑӄࡏ тӍӂҿӑ ҹӝӑӛ ӎӏӄҺҿҾҿӌ ӈ ӊӧҹӍӋӒ ҾӏӒһӍӋӒ ӑӄӎӒ ӒӈҸӃҸӑҿӊҿӅ ӄӍҹӏҸӑӌӍࡏфҹӨӃҸӑҿӊӛӌӍ ӎӏӍӖӄӑҸӑӛ ӏҸӐӐӈҸӃ ӎӍ ӐӐӝӊӈҿࡏdouble x = 37;double* px = &x;void* p = px;int* py = p;шӊӒӘӗӎҾ ӚӊӐӓӖӓӚӊӊࡋ ࢂхҾӎӓӀҾ ӔӕӊӕӓӄҾ ʮȧǝƆࡓࢃ ࡶ ӖӔӕӓӖӊӐ ӘӜӊӗӅӐӡࡌ ࡎhttp://thecodelesscode.com/case/5?lang=ruߠࡏࡏеӄӌҸӋӄӖҿӐӈҸӨ ӎҸӋӨӑӛࡏࡏࡏхӏҿӄӋӒәҿӐӑҺҸ ҾӄӌҸӋӄӖҿӐӈӍӅ ӎҸӋӨӑӄбӌӒӑӏӄ ӔӒӌӈӗӄӄ ӌҿӊӛӃӨ ӐӍӃҾҸӑӛ ӋҸӐӐӄҺࡈ ӈӍӑӍӏӝӅ ҹӒҾҿӑӐӒәҿӐӑҺӍҺҸӑӛ ӎӍӐӊҿ ҺӝӕӍҾҸ ӄӃ ӌҿҿࡏцҸӃӋҿӏ ӋҸӐӐӄҺҸ ҾӍӊӂҿӌ ҹӝӑӛ ӄӃҺҿӐӑҿӌ ӌҸ ӋӍӋҿӌӑ ӈӍӋӎӄӊӨӗӄӄӎӏӍһӏҸӋӋӝࡏчҸӋӝӅ һӄҹӈӄӅ ӄ ӐҸӋӝӅ ӐӊӍӂӌӝӅ Һ ӏҸҹӍӑҿ ҺӄҾ ӎҸӋӨӑӄࡏжӐӑӛ ҿәҿ ҸҺӑӍӋҸӑӄӖҿӐӈҸӨ ӄ ӐӑҸӑӄӖҿӐӈҸӨ ӎҸӋӨӑӛࡈ ӌӍ ӄӕ ӍӎӄӐҸӌӄҿҺӝӕӍҾӄӑ ӃҸ ӏҸӋӈӄ ҾҸӌӌӍӅ ӊҿӈӗӄӄࡏ лӕ ӍӐӌӍҺӌӝҿ ӌҿҾӍӐӑҸӑӈӄࡇӔӄӈӐӄӏӍҺҸӌӌӝӅ ӏҸӃӋҿӏ ӄ ӌҿҾӍӐӑҸӑӍӖӌӍ һӄҹӈӍҿ ҺӏҿӋӨ ӂӄӃӌӄࡏࡄ бӝҾҿӊӨҿӑӐӨ ӄ ӍӐҺӍҹӍӂҾҸҿӑӐӨ ҾӄӌҸӋӄӖҿӐӈӄ ӎӍ ӃҸӎӏӍӐӒ ӎӏӍһӏҸӋӋӝࡏࡄ цҸӃӋҿӏ ӃҸҾҸҿӑӐӨ ҾӄӌҸӋӄӖҿӐӈӄࡏߢࡏࡏбӝҾҿӊҿӌӄҿ ҹӊӍӈҸ ӎҸӋӨӑӄȒŏȀȀȩż ࣌ ƚȒȩɟʿ °+ŏɾƚɯǞˌƚ࡙ɾ ࡷ ҹҿӃӃӌҸӈӍҺӝӅ ӗҿӊӍӖӄӐӊҿӌӌӝӅ ӑӄӎ ҾҸӌӌӝӕࡈ ӎӍҾӕӍҾӨәӄӅҾӊӨ ӕӏҸӌҿӌӄӨ ӊӧҹӍһӍ ӏҸӃӋҿӏҸ Һ ҹҸӅӑҸӕࡏеӏӒһӄҿ ӔӒӌӈӗӄӄ ҾӊӨ ҺӝҾҿӊҿӌӄӨ ӎҸӋӨӑӄ żŏȀȀȩżࡈ ɟƚŏȀȀȩż ҺӝӕӍҾӨӑӃҸ ӏҸӋӈӄ ҾҸӌӌӍһӍ ӈӒӏӐҸࡏvoid* malloc(size_t size);ыӒӌӈӗӄӨ ҺӝҾҿӊӨҿӑ ҹӊӍӈ ӎҸӋӨӑӄ ӏҸӃӋҿӏӍӋ size ҹҸӅӑ ӄ ҺӍӃҺӏҸәҸҿӑ ӒӈҸӃҸӑҿӊӛӌҸ ӌҸӖҸӊӍ ҹӊӍӈҸࡏ б ӐӊӒӖҸҿࡈ ҿӐӊӄ ӎҸӋӨӑӛ ҺӝҾҿӊӄӑӛ ӌҿ ӎӍӊӒӖӄӊӍӐӛࡈ ҺӍӃҺӏҸәҸҿӑNULLࡏ фҹӜӨҺӊҿӌҸ Һ ӃҸһӍӊӍҺӍӖӌӍӋ ӔҸӅӊҿ stdlib.hࡏߣࡏࡏфӐҺӍҹӍӂҾҿӌӄҿ ҹӊӍӈҸ ӎҸӋӨӑӄщӑҿӖӈӄ ӎҸӋӨӑӄ ӌҸ ӐҿӏҺҿӏӌӝӕ ӎӏӄӊӍӂҿӌӄӨӕࡈ ӈӍӑӍӏӝҿ ҾӍӊӂӌӝӏҸҹӍӑҸӑӛ ӌҿӐӈӍӊӛӈӍ ӊҿӑࡈ ӌҿҾӍӎӒӐӑӄӋӝࡏщӑҿӖӈӄ ӎҸӋӨӑӄ Һ ҾҿӐӈӑӍӎӌӝӕ ӎӏӄӊӍӂҿӌӄӨӕ ӌҿ ӑҸӈ ӈӏӄӑӄӖӌӝࡈ ӌӍӋӍһӒӑ ӄ ӎӏӄӖӄӌӨӑӛ ӌҿӒҾӍҹӐӑҺҸ ӐӋࡏ ӐӍҺӏҿӋҿӌӌӝҿ ҹӏҸӒӃҿӏӝࡏvoid free(void* ptr);ыӒӌӈӗӄӨ ӍӐҺӍҹӍӂҾҸҿӑ ҹӊӍӈ ӎҸӋӨӑӄࡏ жӐӊӄ ptr ӏҸҺҿӌ NULLࡈ ӌӄӖҿһӍ ӌҿ ҾҿӊҸҿӑࡏфҹӜӨҺӊҿӌҸ Һ ӃҸһӍӊӍҺӍӖӌӍӋ ӔҸӅӊҿ stdlib.hࡏхӍӐӊҿ ҺӝӃӍҺҸ ӃӌҸӖҿӌӄҿ ӒӈҸӃҸӑҿӊӨ ptr ӍӐӑҸҿӑӐӨ ӎӏҿӂӌӄӋࡈ ӌӍӏҸӃӝӋҿӌӍҺӝҺҸӑӛ ҿһӍ ӌҿӊӛӃӨࡏуҿӄӐӎӍӊӛӃӒҿӋӒӧ ӎҸӋӨӑӛ ӌӒӂӌӍ ӍҹӨӃҸӑҿӊӛӌӍ ӍӐҺӍҹӍӂҾҸӑӛࡈ ӄӌҸӖҿ ӏҸӌӍ ӄӊӄӎӍӃҾӌӍ ӍӌҸ ӋӍӂҿӑ ӈӍӌӖӄӑӛӐӨ ӒӑҿӖӈҸ ӎҸӋӨӑӄࡏߤࡏࡏхӏӄӋҿӏࡇ ӋҸӐӐӄҺ ҾӄӌҸӋӄӖҿӐӈӍһӍ ӏҸӃӋҿӏҸбӝҾҿӊҿӌӄҿ ӎҸӋӨӑӄ ӎӍҾ ӗҿӊӝӕ ӖӄӐҿӊࡈ һҾҿ ӃҸҾҸҿӑӐӨ ҺӍ ҺӏҿӋӨӄӐӎӍӊӌҿӌӄӨ ӎӏӍһӏҸӋӋӝࡏɯǞˌƚȩǀ ࡴ ӍӎҿӏҸӑӍӏࡈ ҺӝҾҸӧәӄӅ ӏҸӃӋҿӏ ӑӄӎӍҺ ҾҸӌӌӝӕࡏ уҸӎӏӄӋҿӏࡈӌҸ vȘɾƚȀ ʾߤߢ ɯǞˌƚȩǀǞȘɾ ࣌࣌ ߠࡏࡏint n = read_number(); // 5int* p; // ???ߥࡏࡏхӏӄӋҿӏࡇ ӋҸӐӐӄҺ ҾӄӌҸӋӄӖҿӐӈӍһӍ ӏҸӃӋҿӏҸࡏࡐࡐࡐࡐࡐࡐࡐࡐࡐ0x100бӝҾҿӊҿӌӄҿ ӎҸӋӨӑӄ ӎӍҾ ӗҿӊӝӕ ӖӄӐҿӊࡈ һҾҿ ӃҸҾҸҿӑӐӨ ҺӍ ҺӏҿӋӨӄӐӎӍӊӌҿӌӄӨ ӎӏӍһӏҸӋӋӝࡏࡐࡐࡐɯǞˌƚȩǀ ࡴ ӍӎҿӏҸӑӍӏࡈ ҺӝҾҸӧәӄӅ ӏҸӃӋҿӏ ӑӄӎӍҺ ҾҸӌӌӝӕࡏ уҸӎӏӄӋҿӏࡈӌҸ vȘɾƚȀ ʾߤߢ ɯǞˌƚȩǀǞȘɾ ࣌࣌ ߠࡏࡐࡐࡐ0x113int n = read_number(); // 5int* p; // 0x100p = malloc(n * sizeof(int));if (p == NULL) { /* error */ }ߥࡏࡏхӏӄӋҿӏࡇ ӋҸӐӐӄҺ ҾӄӌҸӋӄӖҿӐӈӍһӍ ӏҸӃӋҿӏҸࡏߟߣࡐࡐࡐ0x100ߟߣбӝҾҿӊҿӌӄҿ ӎҸӋӨӑӄ ӎӍҾ ӗҿӊӝӕ ӖӄӐҿӊࡈ һҾҿ ӃҸҾҸҿӑӐӨ ҺӍ ҺӏҿӋӨӄӐӎӍӊӌҿӌӄӨ ӎӏӍһӏҸӋӋӝࡏࡐࡐࡐɯǞˌƚȩǀ ࡴ ӍӎҿӏҸӑӍӏࡈ ҺӝҾҸӧәӄӅ ӏҸӃӋҿӏ ӑӄӎӍҺ ҾҸӌӌӝӕࡏ уҸӎӏӄӋҿӏࡈӌҸ vȘɾƚȀ ʾߤߢ ɯǞˌƚȩǀǞȘɾ ࣌࣌ ߠࡏߟߣ0x113int n = read_number(); // 5int* p; // 0x100p = malloc(n * sizeof(int));if (p == NULL) { /* error */ }p[0] = p[n/2] = p[n-1] = 37;ߥࡏࡏхӏӄӋҿӏࡇ ӋҸӐӐӄҺ ҾӄӌҸӋӄӖҿӐӈӍһӍ ӏҸӃӋҿӏҸࡏࡐࡐࡐࡐࡐࡐࡐࡐࡐ0x100бӝҾҿӊҿӌӄҿ ӎҸӋӨӑӄ ӎӍҾ ӗҿӊӝӕ ӖӄӐҿӊࡈ һҾҿ ӃҸҾҸҿӑӐӨ ҺӍ ҺӏҿӋӨӄӐӎӍӊӌҿӌӄӨ ӎӏӍһӏҸӋӋӝࡏࡐࡐࡐɯǞˌƚȩǀ ࡴ ӍӎҿӏҸӑӍӏࡈ ҺӝҾҸӧәӄӅ ӏҸӃӋҿӏ ӑӄӎӍҺ ҾҸӌӌӝӕࡏ уҸӎӏӄӋҿӏࡈӌҸ vȘɾƚȀ ʾߤߢ ɯǞˌƚȩǀǞȘɾ ࣌࣌ ߠࡏࡐࡐࡐ0x113int n = read_number(); // 5int* p; // 0x100p = malloc(n * sizeof(int));if (p == NULL) { /* error */ }p[0] = p[n/2] = p[n-1] = 37;free(p);ߥࡏࡏщӈҸӃҸӑҿӊӄ ӌҸ ӔӒӌӈӗӄӄࡏࡏࡏыӒӌӈӗӄӄ ӈҸӈ ҾҸӌӌӝҿɔȩʶ ࡴ ӔӒӌӈӗӄӨ ҺӍӃҺҿҾҿӌӄӨ Һ Ӑӑҿӎҿӌӛࡈ ӍҹӜӨҺӊҿӌҸ Һ ӔҸӅӊҿ ȒŏɾǕࡏǕࡏхӏӍӄӃӌӍӐӄӑӐӨ ӐӊҿҾӒӧәӄӋ ӍҹӏҸӃӍӋࡇ ӎҿӏҿӋҿӌӌҸӨ Ȓʿ࡙ǀʕȘż ࡴ ӢӑӍӒӈҸӃҸӑҿӊӛ ӌҸ ӔӒӌӈӗӄӧࡈ ӎӏӄӌӄӋҸӧәӒӧ ҾҺҸ ӎҸӏҸӋҿӑӏҸ ӑӄӎҸƇȩʕųȀƚ ӄ ҺӍӃҺӏҸәҸӧәӒӧ ӃӌҸӖҿӌӄҿ ӑӄӎҸ ƇȩʕųȀƚࡏб ӨӃӝӈҿ + Ӑ ӔӒӌӈӗӄӨӋӄ ӋӍӂӌӍ ӏҸҹӍӑҸӑӛ ӈҸӈ Ӑ ҾҸӌӌӝӋӄࡇdouble (*my_func)(double, double) = pow;double x = my_func(3, 2); // x = 9.0фӎҿӏҸӑӍӏ ҺӃӨӑӄӨ ҸҾӏҿӐҸ ॆ ҾӊӨ ӔӒӌӈӗӄӅ ӋӍӂӌӍ ӍӎӒӐӈҸӑӛ ӖҸәҿҺӐҿһӍ ӍӎӒӐӈҸҿӑӐӨࡏыӒӌӈӗӄӨ ࡴ ӢӑӍ ӌҸҹӍӏ ҹҸӅӑӍҺ Һ ӎҸӋӨӑӄࡈ ӈӍҾӄӏӒӧәӄӕ ӑҿӊӍ ӢӑӍӅ ӔӒӌӈӗӄӄ ӐӎӍӋӍәӛӧ ӋҸӘӄӌӌӝӕ ӈӍӋҸӌҾࡏ кӌҸӖӄӑࡈ ӋӍӂӌӍ ҺӃӨӑӛ ҸҾӏҿӐ ӢӑӍһӍ ࢀӌҸҹӍӏҸҹҸӅӑӍҺࢁࡏфӎҿӏҸӑӍӏ ӏҸӃӝӋҿӌӍҺӝҺҸӌӄӨ ࡁ ӎӏӄ ҺӝӃӍҺҿ ӔӒӌӈӗӄӄ ӋӍӂӌӍӍӎӒӐӈҸӑӛ ӖҸәҿ ҺӐҿһӍ ӍӎӒӐӈҸҿӑӐӨࡏкҸӋҿӑӄӋࡈ ӖӑӍ Һӝ Ӓӂҿ ҺӐӑӏҿӖҸӊӄӐӛ Ӑ ӑӄӎҸӋӄࡈ ӍӈӏӒӂҸӧәӄӋӄ ӄӋӨӎҿӏҿӋҿӌӌӍӅࡇ ǞȘɾ ŏɟɟߝߜࡠߡࡠ ࡴ Һ ҾҸӌӌӍӋ ӐӊӒӖҸҿ ӎҿӏҿӋҿӌӌҸӨ ӄӋҿҿӑӄӋӨ ŏɟɟ ӄ ӑӄӎ ǞȘɾߝߜࡠߡࡠࡏаӍӊҿҿ ӔӍӏӋҸӊӛӌӍࡇdouble (*my_func)(double, double) = &pow;double x = (*my_func)(3, 2); // x = 9.0ߝߝࡏࡏхӏӄӋҿӏ ӖӄӐӊҿӌӌӍһӍ ҺӝӖӄӐӊҿӌӄӨ ӎӏӍӄӃҺӍҾӌӍӅ Һ ӑӍӖӈҿб ҾҸӌӌӍӋ ӎӏӄӋҿӏҿ Ӑ ӎӍӋӍәӛӧ ӒӈҸӃҸӑҿӊҿӅ ӌҸ ӔӒӌӈӗӄӄ Ӌӝ ӋӍӂҿӋӖӄӐӊҿӌӌӍ ҺӝӖӄӐӊӨӑӛ ӎӏӍӄӃҺӍҾӌӝҿ ӋҸӑҿӋҸӑӄӖҿӐӈӄӕ ӔӒӌӈӗӄӅࡈӈӍӑӍӏӝҿ ӎӏӄӌӄӋҸӧӑ ӍҾӄӌ ӎҸӏҸӋҿӑӏ ӑӄӎҸ ƇȩʕųȀƚ ӄ ҺӍӃҺӏҸәҸӧӑӏҿӃӒӊӛӑҸӑ ӑӄӎҸ ƇȩʕųȀƚࡏdouble diff(double x, double (*f)(double)) {double dx = 0.01;return (f(x + dx) - f(x)) / dx;}кҸӋҿӑӄӋࡈ ӖӑӍ Ӌӝ ӋӍӂҿӋ ӎҿӏҿҾҸҺҸӑӛ ӎҸӏҸӋҿӑӏӍӋ ӌҿ ӑӍӊӛӈӍҹӄҹӊӄӍӑҿӖӌӝҿ ӔӒӌӈӗӄӄ ӌҸӎӏӄӋҿӏࡈ ɯǞȘ ӄ żȩɯ ӄӃ ȒŏɾǕࡏǕࡈ ӌӍ ӄӐӍҹӐӑҺҿӌӌӝҿ ӔӒӌӈӗӄӄ ӌҸӎӏӄӋҿӏࡈ ɯɛʕŏɟƚࡏdouble square(double x) {return x * x;}࡙Úv ࡴ ӈӍӌӐӑҸӌӑҸ ӄӃ ȒŏɾǕࡏǕprintf("%g\n", diff(M_PI/3, sin)); // 0.495662printf("%g\n", diff(M_PI/6, cos)); // -0.504322printf("%g\n", diff(3, square));// 6.01ߝߞࡏࡏчӄӋҺӍӊӝ ӄ ӈӍҾӄӏӍҺӈӄࡏࡏࡏчӄӋҺӍӊӝ Һ +чӄӋҺӍӊӝ ӃҸҾҸӧӑӐӨ Һ ӍҾӄӌҸӏӌӝӕ ӈҸҺӝӖӈҸӕࡈ ӕӏҸӌӨӑӐӨ Һ ӎҿӏҿӋҿӌӌӝӕ ӑӄӎҸ charࡏchar x = 'H';char y = 'i';printf("%c%c\n", x, y); // HiߝߠࡏࡏпӍҾӄӏӍҺӈӄшӍ ҿӐӑӛ ӐӄӋҺӍӊӝ ӎӏҿҾӐӑҸҺӊӨӧӑӐӨ ӎӏӍӐӑӍ ӐҺӍӄӋ ӗҿӊӍӖӄӐӊҿӌӌӝӋӈӍҾӍӋࡏȒƚɟǞżŏȘ ɯɾŏȘƇŏɟƇ żȩƇƚ ǀȩɟ ǞȘǀȩɟȒŏɾǞȩȘ ǞȘɾƚɟżǕŏȘǃƚࡏпӍҾӄӏӍҺӈҸ ࡴ ӐӍӍӑҺҿӑӐӑҺӄҿ ӋҿӂҾӒ ӐӄӋҺӍӊӍӋ ӄ ӗҿӊӍӖӄӐӊҿӌӌӝӋ ӈӍҾӍӋࡏшҸҹӒӊӨӗӄӨ ࡴ һӍӏӄӃӍӌӑҸӊӛӌӝӅ ӎӏӍҹҿӊ ҾӊӨ ӔӍӏӋҸӑӄӏӍҺҸӌӄӨӑҸҹӊӄӗࡏë+vv ࡴ ӔӒӌҾҸӋҿӌӑҸӊӛӌҸӨ ߣࡷҹӄӑӌҸӨ ӈӍҾӄӏӍҺӈҸࡇࡄ ߟߞ ӒӎӏҸҺӊӨӧәӄӕ ӐӄӋҺӍӊҸࡈࡄ '\0'ࡈ ӈӍҾ ߜ ࡴ ӎӒӐӑӍӅ ӐӄӋҺӍӊࡈࡄ '\t'ࡈ ӈӍҾ ߥ ࡴ ӑҸҹӒӊӨӗӄӨࡈࡄ '\n'ࡈ ӈӍҾ ߝߜ ࡴ ӎҿӏҿҺӍҾ ӐӑӏӍӈӄࡈࡄ ࡊࡄ ߥߢ ӄӌӔӍӏӋҸӗӄӍӌӌӝӕ ӐӄӋҺӍӊӍҺࡏࡄ '0'..'9' ࡴ ӗӄӔӏӝࡈࡄ 'a'..'z'ࡈ 'A'..'Z' ࡴ ҹӒӈҺӝࡈࡄ ',', '?', ...
ࡴ ӎӒӌӈӑӒҸӗӄӨࡏࡄ ࡊߝߡࡏࡏчӄӋҺӍӊӝ ӈҸӈ ӖӄӐӊҸчӄӋҺӍӊ ࡴ ӍҾӌӍҺӏҿӋҿӌӌӍ ӄ ӐӄӋҺӍӊࡈ ӄ ӈӍҾࡏ бӐҿ ӃҸҺӄӐӄӑ ӊӄӘӛ ӍӑӐӎӍӐӍҹҸ ҿһӍ ӑӏҸӈӑӍҺҸӌӄӨࡏchar a = 'X';printf("%c\n", a); // Xprintf("%d\n", a); // 88char b = a + 1;printf("%c\n", b); // YߝߢࡏࡏуҸӗӄӍӌҸӊӛӌӝҿ ӐӄӋҺӍӊӝпфлࡷߤ ӄ ĦǞȘƇȩʶɯࡷߝߞߡߝ ӌҿ ӐӍҺӋҿӐӑӄӋӝ ҾӏӒһ Ӑ ҾӏӒһӍӋ ӄ ӌҿӐӍҺӋҿӐӑӄӋӝ ӐӍ ҺӐҿӋӄ ӍӐӑҸӊӛӌӝӋӄ ӌҸӗӄӍӌҸӊӛӌӝӋӄӈӍҾӄӏӍҺӈҸӋӄ ࡴ ҹҸӏҾҸӈࡋб ҹӏҸӒӃҿӏҸӕ ҾӍ Ӑӄӕ ӎӍӏ ҿӐӑӛ ҺӍӃӋӍӂӌӍӐӑӛ ҺӏӒӖӌӒӧ ҺӝҹӏҸӑӛӈӍҾӄӏӍҺӈӒ ӐӑӏҸӌӄӗӝࡏ л ӢӑӍ ӄӌӍһҾҸ ҹӝҺҸҿӑ ӎӍӊҿӃӌӍࡏЯ ӖӑӍ ҾҿӊҸӑӛࡈ ҿӐӊӄ ӕӍӖҿӑӐӨ ӄӐӎӍӊӛӃӍҺҸӑӛ ӈӄӏӄӊӊӄӗӒࡈ ӒӋӊӨӒӑӝ ӄ ӄҿӏӍһӊӄӔӝࡐߤࡷҹӄӑӌӝҿ ӈӄӏӄӊӊӄӖҿӐӈӄҿ ӈӍҾӄӏӍҺӈӄࡈ ҹҸӃӄӏӒӧәӄҿӐӨ ӌҸ ë+vvࡇ пфлࡷߤࡈĦǞȘƇȩʶɯࡷߝߞߡߝࡈ ࡊуҸ ӎӏҸӈӑӄӈҿ ӈҸӈࡷӑӍ ӑҸӈࡇ ӄӘॏӧӜӏӚ ॊӝӕӜөॏӘӡӘӜӏӣӘӚߝߣࡏࡏўӌӄӈӍҾўӌӄӈӍҾ ӌҸ ҾҸӌӌӝӅ ӋӍӋҿӌӑ ӄӐӎӍӊӛӃӒҿӑӐӨ ӎӍ ӒӋӍӊӖҸӌӄӧ ҺӍӋӌӍһӄӕ ӨӃӝӈҸӕ ӎӏӍһӏҸӋӋӄӏӍҺҸӌӄӨࡈ Һ ӍӎҿӏҸӗӄӍӌӌӝӕ ӐӄӐӑҿӋҸӕࡈ ӌҸҹӍӊӛӘӄӌӐӑҺҿ ӄӌӑҿӏӌҿӑ ӐҸӅӑӍҺࡏшӍӌӈӍӐӑӄ ӈӍҾӄӏӍҺҸӌӄӨ ӧӌӄӈӍҾӌӝӕ ӐӄӋҺӍӊӍҺ Һ ҺӄҾҿ ҹҸӅӑӍҺ ҺҾҸӌӌӍӅ ӊҿӈӗӄӄ ӌҿ ӏҸӐӐӋҸӑӏӄҺҸҿӑӐӨࡏ шҸӈӂҿ ӌҿ ӏҸӐӐӋҸӑӏӄҺҸӧӑӐӨӐӎӍӐӍҹӝ ӄӐӎӍӊӛӃӍҺҸӌӄӨ ӧӌӄӈӍҾҸ Һ ӎӏӍһӏҸӋӋҸӕ ӌҸ +ࡏўӌӄӈӍҾ ࡴ ӋӌӍһӍҹҸӅӑӍҺҸӨ ӈӍҾӄӏӍҺӈҸࡈ ӎӍӈӏӝҺҸӧәҸӨ ӎӍӖӑӄ ҺӐҿ ӎӄӐӛӋҿӌӌӝҿӨӃӝӈӄࡏхӍӃҺӍӊӨҿӑ ӈӍҾӄӏӍҺҸӑӛ ߝ ߝߝߞ ߜߢߠ ӐӄӋҺӍӊӍҺࡏ б ҺҿӏӐӄӄ ߥࡏߜࡈ ӄӧӌӛ ߞߜߝߢ һࡏࡈӄӐӎӍӊӛӃӒҿӑӐӨ ӊӄӘӛ ߝߞߤ ߞߟߣࡏлӌӑҿӏҿӐӌҸӨ ӍҹӃӍӏӌҸӨ ӊҿӈӗӄӨ ӎӏӍ ӍӐӍҹҿӌӌӍӐӑӄ ӧӌӄӈӍҾҸ Ӑ÷ƚżǕ÷ŏȀǺɯॅëĆࡇ ǕɾɾɔɯࡇࡕࡕɾƚżǕɾŏȀǺɯࡏȘɯʕࡏɟʕࡕߟߢчӍҾҿӏӂӄӑ ҺӐҿ ӌҸӗӄӍӌҸӊӛӌӝҿ ӐӄӋҺӍӊӝࡈ ӋҸӑҿӋҸӑӄӖҿӐӈӄҿ ӐӄӋҺӍӊӝࡈ ӐӄӋҺӍӊӝҾӏҿҺӌӄӕ ӎӄӐӛӋҿӌӌӍӐӑҿӅ ӄ ӋӌӍһӍҿ ҾӏӒһӍҿࡈ ҺӈӊӧӖҸӨ ☺ ☹ ӄ ҾҸӂҿ ࡋߝߤࡏࡏчӑӏӍӈӄࡏࡏࡏчӑӏӍӈӄкҸӋҿӑӄӋࡈ ӖӑӍ ҾӊӨ ӐӑӏӍӈӄ Ҿӊӄӌӝ ӌҿӍҹӕӍҾӄӋ ӋҸӐӐӄҺ Ҿӊӄӌӝ ӈҸӈӋӄӌӄӋӒӋ ࣹߝࡏчӑӏӍӈҸ ࡴ ӢӑӍ ӌҸҹӍӏ ӐӄӋҺӍӊӍҺࡏ б ӨӃӝӈҿ + ӐӑӏӍӈӄ ӎӏҿҾӐӑҸҺӊӨӧӑӐӨ Һ ҺӄҾҿӋҸӐӐӄҺӍҺ ӐӄӋҺӍӊӍҺ ӑӄӎҸ charࡏ пӍӌӐӑҸӌӑӌӝҿ ӐӑӏӍӈӄ ӃҸҾҸӧӑӐӨ Һ ҾҺӍӅӌӝӕӈҸҺӝӖӈҸӕࡏцҸӃӋҿӏ ӋҸӐӐӄҺҸࡈ Һ ӈӍӑӍӏӍӋ ӕӏҸӌӄӑӐӨ ӐӑӏӍӈҸ ࢆmǞࢆ ࡴ ߟ ҹҸӅӑҸࡏеӊӄӌҸ ӐӑӏӍӈӄ ӨҺӌӍ ӌҿ ӕӏҸӌӄӑӐӨࡇ ӎӍӐӊҿ ӎӍӐӊҿҾӌҿһӍ ӐӄӋҺӍӊҸ ӐӑӏӍӈӄ ӕӏҸӌӄӑӐӨӐӎҿӗӄҸӊӛӌӝӅ ӐӄӋҺӍӊ '\0'ࡏchar* str = "Hi";printf("%s\n", str);// Hiprintf("%d - %c\n", str[0], str[0]); // 72 - Hprintf("%d - %c\n", str[1], str[1]); // 105 - iprintf("%d - %c\n", str[2], str[2]); // 0 -ߞߜࡏࡏшӍӌӈӍӐӑӛ Ӑ ӄӌӄӗӄҸӊӄӃҸӗӄҿӅ ӐӑӏӍӈб ӎҿӏҺӍӋ ӐӊӒӖҸҿ ӎҿӏҿӋҿӌӌҸӨ ɾƚɯɾ ӒӈҸӃӝҺҸҿӑӐӨ ӌҸ ӐӎҿӗӄҸӊӛӌӒӧӍҹӊҸӐӑӛ ӎҸӋӨӑӄࡈ ҾӍӐӑӒӎӌӒӧ ӑӍӊӛӈӍ ҾӊӨ ӖӑҿӌӄӨࡈ һҾҿ ӕӏҸӌӨӑӐӨ ҺӐҿӈӍӌӐӑҸӌӑӌӝҿ ӐӑӏӍӈӄࡏбӍ ҺӑӍӏӍӋ ӐӊӒӖҸҿ ɾƚɯɾ ӒӈҸӃӝҺҸҿӑ ӌҸ ӋҸӐӐӄҺ Һ ӊӍӈҸӊӛӌӍӅ ӎҸӋӨӑӄࡈҾӍӐӑӒӎӌӍӅ ҾӊӨ ӖӑҿӌӄӨ ӄ ӃҸӎӄӐӄࡈ Һ ӈӍӑӍӏӝӅ ҹӝӊӍ ӐӈӍӎӄӏӍҺҸӌӍӐӍҾҿӏӂӄӋӍҿ ӈӍӌӐӑҸӌӑӌӍӅ ӐӑӏӍӈӄࡏࡄ test ࡴ ӒӈҸӃҸӑҿӊӛ ӌҸ ӈӍӌӐӑҸӌӑӌӒӧ ӐӑӏӍӈӒࡏchar* test = "cat";test[2] = 'r'; // run time errorࡄ test ࡴ ӋҸӐӐӄҺࡈ ӎӏӍӄӌӄӗӄҸӊӄӃӄӏӍҺҸӌӌӝӅ ӈӍӌӐӑҸӌӑӌӍӅ ӐӑӏӍӈӍӅࡏchar test[] = "cat";test[2] = 'r';printf("%s\n", test); // carߞߝࡏࡏпӍӌҿӗ ӑӏҿӑӛҿӅ ӊҿӈӗӄӄߞߞࡏ.