نمایش نتایج 1 تا 7 از 7

نام تاپیک: تفاوت char* a و char *a ؟

  1. #1

    تفاوت char* a و char *a ؟

    آیا در تعاریف زیر تفاوتی وجود دارد؟

    Char* a
    Char *a

    این سوال رو از این بابت میپرسم که در برخی تبدیلات دیدم که به این شکل تبدیل انجام شده
    (int*)x

    اما نمیتونم درکش کنم یعنی چی

  2. #2

    نقل قول: تفاوت char* a و char *a ؟

    نه تفاوتی وجود نداره
    ببینید اصلش اینه که موقع اعلان یک متغیر به صورت اشاره گر
    1-اول نوع را میذاریم و سپس
    2- یک ستاره و اسپیس به همراه نام متغیر میذاریم
    یعنی char یه طرف و ستاره و نام متغیر یعنی a طرف دیگه
    با این کار نوع a برابر میشه با * char
    یعنی نوعش میشه اشاره گر به char
    این هم یک نمونه دیگه که چند تا متغیر اعلان می کنیم:

    char * a , b , * c;

    a از نوع اشاره گر به char
    b از نوع char
    c از نوع اشاره گر به char هستند
    یک نکته دیگه چون * جزء حروفی نیست که به عنوان اسم متغیر ازشون استفاده می شه فرقی نمیکنه که قبل و بعدش اسپیس بذاریم یا نذاریم

    char* a;
    char *a;
    char * a;
    char*a;

    در مورد آخر هم داره عمل cast یا تبدیل نوع انجام میشه مثلا وقتی بخواهیم یک int را به صورت صریح به double تبدیل کنیم می تونیم اینجور بنویسیم

    int a=5;
    int b=6;
    double c= (double) a / b;

    ابتدا a تبدیل به double میشه و بعد تقسیم بر b میشه
    توی مثال شما هم داریم یک متغیر را به نوع اشاره گری به int یا * int تبدیل می کنیم

  3. #3

    نقل قول: تفاوت char* a و char *a ؟

    دو مورد اول تفاوتی ندارند.

    مورد سوم به کامپایلر میگوید نوع متغیر x را "اشاره گر به عدد صحیح" در نظر بگیر.
    int *a, b;
    int* a,b;

    در این مثال در هر دو تعریف a اشاره گر به متغیر عدد صحیح و b متغیر عدد صحیح می باشد.

    {ویرایش}

    یک نکته مهم اینکه استفاده از این نوع تبدیل نوع که به نام c-style cast شناخته میشه در ++C توصیه نمیشه و باید به جای آن از static_cast استفاده شود.

  4. #4

    نقل قول: تفاوت char* a و char *a ؟

    یک نکته مهم اینکه استفاده از این نوع تبدیل نوع که به نام c-style cast شناخته میشه در ++C توصیه نمیشه و باید به جای آن از static_cast استفاده شود.
    ممنون می شوم که این دو گزینه را تشریح کوتاهی بفرمایید.

  5. #5

    نقل قول: تفاوت char* a و char *a ؟

    مثال: به جای اینکه بنویسیم
    void *t;
    int *a = (int*) t

    بنویسیم
    void *t;
    int *a = static_cast<int*>(t);


    حال مثال دیگر:
    void *t;
    int a = (int) t;


    این کد کامپایل و اجرا می شود. ولی دست کار نمیکند چون ما داریم ادرس یک متغیر نا معلوم را به عدد صحیح تبدیل و درون a قرار میدهسم در صورتی که مقصود ما قرار دادن مقدار آن در a بود. در اینجا اگر از static_cast استفاده میکردیم کامپایلر متوجه اشتباه ما میشد و خطا میداد.

  6. #6

    نقل قول: تفاوت char* a و char *a ؟

    ممنون از راهنماییتون
    میخوام بدونم در تبدیل نوع دقیقا چه اتفاقی میفته؟ یعنی ریزتر بشیم تو اجرای فرایند تبدیل که چه اتفاقی میفته که بعنوان مثال یک نوع int به اشاره گر اون تبدیل میشه

  7. #7

    نقل قول: تفاوت char* a و char *a ؟

    نقل قول نوشته شده توسط moha//\\//\\ad مشاهده تاپیک
    ممنون از راهنماییتون
    میخوام بدونم در تبدیل نوع دقیقا چه اتفاقی میفته؟ یعنی ریزتر بشیم تو اجرای فرایند تبدیل که چه اتفاقی میفته که بعنوان مثال یک نوع int به اشاره گر اون تبدیل میشه
    من ابتدا یه توضیح بدم اونم اینکه بعضی مباحثی که سوال میشه جوابش ممکنه در سطح پیشرفته باشه و نیاز روزمره برنامه نویس هم نباشه. مثل همین مورد. مثلاً من باید بدونم که تا حد امکان نباید نوع های داده ای را به هم تبدیل کنم. و به طور معمول همیشه باید از static_cast استفاده کنم. همچنین به جای define# از const استفاده کنم.
    حال اینکه چگونه تبدیل نوع توسط کامپایلر صورت میگیره یکم پیشرفته تره. گاهی موارد هیچ تغییری در کد خروجی به وجود نمیاد و گاهی کد لازم توسط کامپایلر اضافه می شود.

تاپیک های مشابه

  1. تفاوت CONST char * str و char * str
    نوشته شده توسط ayub_coder در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 11
    آخرین پست: جمعه 05 مهر 1392, 11:49 صبح
  2. تفاوت تبدیل نوع const char* به char*
    نوشته شده توسط soroush_vs در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: پنج شنبه 01 بهمن 1388, 16:49 عصر
  3. تفاوت بین نوع Char و Varchar
    نوشته شده توسط کم حوصله در بخش SQL Server
    پاسخ: 11
    آخرین پست: چهارشنبه 09 دی 1388, 16:48 عصر
  4. سوال: cannot convert parameter 2 from 'char [2]' to 'char'
    نوشته شده توسط mj_developer در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: پنج شنبه 07 آذر 1387, 18:52 عصر
  5. تفاوت char با nchar
    نوشته شده توسط sma_mohseni در بخش SQL Server
    پاسخ: 2
    آخرین پست: پنج شنبه 06 مهر 1385, 10:14 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •