PDA

View Full Version : مبتدی: فرق بین char str[] , char * str



binyaft
شنبه 01 آبان 1389, 17:38 عصر
سلام دوستان ، خسته نباشید

میخواستم فرق اعلان دو متغیر زیر رو بگید بهم

char str[]

و

char * str

ممنون

Mokhless
شنبه 01 آبان 1389, 18:10 عصر
سلام دوستان ، خسته نباشید

میخواستم فرق اعلان دو متغیر زیر رو بگید بهم

char str[]

و

char * str

ممنون
فرق چندانی ندارن فقط کامپایلر
char str[] رو به صورت
char const * str تفسیر میکنه , همین !

r00tkit
شنبه 01 آبان 1389, 18:22 عصر
به همین سادگی هم نیست




char ca[] = {'C', 'p', 'p'}; // not null-terminated
cout << strlen(ca) << endl; // disaster: ca isn't null-terminated


char ca[] null-terminated به صورت پیش فرض نیست مثال کد بالا ولی "char* r="Cpp یه null-terminated string هستش


اینم ببین :



char ca1[] = {'C', '+', '+'}; // no null, not C-style string
char ca2[] = {'C', '+', '+', '\0'}; // explicit null
char ca3[] = "C++"; // null terminator added automatically
const char *cp = "C++"; // null terminator added automatically
char *cp1 = ca1; // points to first element of a array, but not C-style string
char *cp2 = ca2; // points to first element of a null-terminated char array

r00tkit
شنبه 01 آبان 1389, 19:51 عصر
حواسم نبود

char static * str


این static اینجا چی کار می کنه ؟

وقتی میگین : char* t="geek" // any string

به خودی خود Const هستش

ولی char str[] نه const نیست

نکته اخر
char* t=new char هم const نیست چون کلا" با اولی فرق داره این dynamic memory هستش