در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش برنامه نویسی C قسمت 18 : Char Pointers VS Array Char

سلام و وقت بخیر. در این قسمت درمورد تفاوت بین char pointer و array char صحبت میکنیم. به کد زیر دقت کنید.

#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "First String";
char *ptr = "Second String";

printf("str = %s \n",str);
printf("ptr = %s \n",ptr);

return 0;
}

در خروجی خواهید دید

str = First String 
ptr = Second String 

ولی این دو یکی نیستند. بیایید با شکل تفاوت آنها را بررسی کنیم.

آموزش برنامه نویسی C  قسمت 18 : Char Pointers VS Array Char

وقتی یک آرایه از کاراکتر ها درست میکنید و یک رشته در آن میریزید، چیزی شبیه شکل سمت راست درست میشود. تعدادی از خانه های حافظه به ترتیب برای این آرایه درنظر گرفته میشود. ولی برای char pointers اینطور نیست. شکل سمت چپ. تعدادی از خانه های حافظه به ترتیب کاراکتر های رشته را ذخیره کرده و آدرس خانه اول در ptr ریخته میشود. (بهترین ابزار ویندوز همین پینته !!!) حال اگر آدرس را افزایش دهیم چه ؟؟ میتوان آدرس را در char pointer افزایش داد ولی در array char نه. به کد زیر دقت کنید.

#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "First String";
char *ptr = "Second String";

printf("str = %s \n",str);
printf("ptr = %s \n",ptr);

ptr = ptr + 1;   /* ptr++ */
printf("ptr = %s \n",ptr);
return 0;
}

حالا خروجی رو ببینید !!!

str = First String 
ptr = Second String 
ptr = econd String 

دیگر ptr به خانه اول اشاره نمیکند، بلکه به خانه دوم اشاره میکند!!! اگر همین کار رو برای str انجام دهید، هنگام کامپایل خطا میدهد.

امیدوارم مطلب را یاد گرفته باشید.

پایان قسمت هجدهم

نویسنده : سید محمد باقر موسوی

منبع : جزیره برنامه نویسی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#برنامه_نویسی_به_زبان_c #نوشتن_shell_script_در_لینوکس #زبان_برنامه_نویسی_c_در_لینوکس #برنامه_نویسی_به_زبان_c_در_لینوکس #آموزش_گام_به_گام_برنامه_نویسی_c #برنامه_نویسی_c_در_linux #آموزش_برنامه_نویسی_c_در_لینوکس
عنوان
1 آموزش برنامه نویسی C قسمت 1 : نصب محیط برنامه نویسی رایگان
2 آموزش برنامه نویسی C قسمت 2 : Hello World رایگان
3 آموزش برنامه نویسی C قسمت 3 : Data Types رایگان
4 آموزش برنامه نویسی C قسمت 4 : Data Types رایگان
5 آموزش برنامه نویسی C قسمت 5 : اشاره گر ها رایگان
6 آموزش برنامه نویسی C قسمت 6 : آرایه ها رایگان
7 آموزش برنامه نویسی C قسمت 7 : ساختار شرط IF رایگان
8 آموزش برنامه نویسی C قسمت 8 : حلقه for رایگان
9 آموزش برنامه نویسی C قسمت 9 : حلقه While رایگان
10 آموزش برنامه نویسی C قسمت 10 : Struct رایگان
11 آموزش برنامه نویسی C قسمت 11 : تابع دریافت ورودی scanf رایگان
12 آموزش برنامه نویسی C قسمت 12 : فایل های متنی و باینری رایگان
13 آموزش برنامه نویسی C قسمت 13 : توابع رایگان
14 آموزش برنامه نویسی C قسمت 14 : توابع اشاره گر رایگان
15 آموزش برنامه نویسی C قسمت 15 : argc argv رایگان
16 آموزش برنامه نویسی C قسمت 16 : Multiple Source Files رایگان
17 آموزش برنامه نویسی C قسمت 17 : String Functions & Operations رایگان
18 آموزش برنامه نویسی C قسمت 18 : Char Pointers VS Array Char رایگان
19 آموزش برنامه نویسی C قسمت 19 : Binary & Unary Operations رایگان
20 آموزش برنامه نویسی C قسمت 20 : Type Casting رایگان
21 آموزش برنامه نویسی C قسمت 21 : readdir & opendir functions رایگان
22 آموزش برنامه نویسی C قسمت 22 : Fork Function رایگان
23 آموزش برنامه نویسی C قسمت 23 : Thread رایگان
24 آموزش برنامه نویسی C قسمت 24 : Switch Case Statement رایگان
25 آموزش برنامه نویسی C قسمت 25 : qsort رایگان
26 آموزش برنامه نویسی C قسمت 26 : Socket Programming رایگان
27 آموزش برنامه نویسی C قسمت 27 : لیست پیوندی (Linked List) رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....