{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "value1: yang\n", "value2: yang\n", "value3: yangyang\n", "*ptr: yang\n" ] } ], "source": [ "#include \n", "\n", "int main()\n", "{\n", " char value1[ ] = \"yang\";\n", " char value2[5] = \"yang\";\n", " char value3[4] = \"yang\";\n", " \n", " char *ptr = \"yang\";\n", " \n", " printf(\"value1: %s\\n\", value1);\n", " printf(\"value2: %s\\n\", value2);\n", " printf(\"value3: %s\\n\", value3);\n", " printf(\"*ptr: %s\\n\", ptr);\n", " \n", " return 0;\n", "}" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "// 다음 코드의 오류 원인은?\n", "\n", "#include \n", "\n", "int main()\n", "{\n", " int *ptr = NULL, i = 0, sum = 0;\n", " \n", " scanf(\"%d\", &ptr);\n", " printf(\"%d\\n\", value);\n", " \n", " return 0;\n", "}\n", "\n", "/* \n", " int value;\n", " ptr = &value;\n", " scanf(\"%d\", &*ptr);\n", "*/" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ptr1 = 0x7ffeed5051cc\n", "ptr1 + 3 = 0x7ffeed5051d8\n", "ptr2 = 0x7ffeed5051d0\n", "++ptr2 = 0x7ffeed5051d4\n", "ptr3 = 0x7ffeed5051d4\n", "--ptr3 = 0x7ffeed5051d0\n" ] } ], "source": [ "#include \n", "\n", "int main()\n", "{\n", " unsigned int array[3] = {10, 20, 30};\n", " unsigned int *ptr1, *ptr2, *ptr3;\n", " \n", " ptr1 = &array[0];\n", " ptr2 = &array[1];\n", " ptr3 = &array[2];\n", " \n", " printf(\"ptr1 = %p\\n\", ptr1);\n", " ptr1 = ptr1 + 3;\n", " printf(\"ptr1 + 3 = %p\\n\", ptr1);\n", "\n", " printf(\"ptr2 = %p\\n\", ptr2);\n", " ++ptr2;\n", " printf(\"++ptr2 = %p\\n\", ptr2);\n", "\n", " printf(\"ptr3 = %p\\n\", ptr3);\n", " --ptr3;\n", " printf(\"--ptr3 = %p\\n\", ptr3);\n", " \n", " return 0;\n", "}" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "string: Programming\t address: 0x10b882f8e\n", "string: rogramming\t address: 0x10b882f8f\n", "string: ogramming\t address: 0x10b882f90\n", "string: gramming\t address: 0x10b882f91\n", "string: ramming\t address: 0x10b882f92\n", "string: amming\t address: 0x10b882f93\n", "string: mming\t address: 0x10b882f94\n", "string: ming\t address: 0x10b882f95\n", "string: ing\t address: 0x10b882f96\n", "string: ng\t address: 0x10b882f97\n", "string: g\t address: 0x10b882f98\n" ] } ], "source": [ "#include \n", "\n", "int main()\n", "{\n", " char *ch = \"Programming\";\n", " \n", " while(*ch != '\\0')\n", " {\n", " printf(\"string: %12s\\t address: %10p\\n\", ch, ch);\n", " ch++;\n", " }\n", " return 0;\n", "}" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " x = 5 y = 12\n", "*px = 5 *py = 12\n" ] } ], "source": [ "#include \n", "\n", "int main()\n", "{\n", " int x, y;\n", " int *ptr1, *ptr2;\n", " \n", " x = 5;\n", " ptr1 = &x;\n", " \n", " y = *ptr1/2 + 10;\n", " ptr2 = &y;\n", " \n", " printf(\" x = %d y = %d\\n\", x, y);\n", " printf(\"*px = %d *py = %d\\n\", *ptr1, *ptr2);\n", " \n", " return 0;\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "C", "language": "c", "name": "c" }, "language_info": { "file_extension": ".c", "mimetype": "text/plain", "name": "c" } }, "nbformat": 4, "nbformat_minor": 2 }