char *ptr = "test",*p;
p = ptr+1 ;
*p = 'a' ;
cout << ptr ;
ايني كه شما گفتيد يه خطاي كامپايلريه من عرض كردم برنامم كامپايل ميشه و تا جايي كه هنوز به اين كد نرسيده اجرا ميشه و به محض رسيدن به اين خط ارور ميده و اين كد نيمدونم چرا تو ويژوال سي پلاس پلاس ارور ميده .من تو توربو سي پلاس پلاس تست كردم اصلا ارور نميدهاما در رابطه با اینکه چرا؟
چون : شما در expression ها یک مقدار سمت چپ نیاز دارید lvalue نه یک مقداری اعلانی (واژه اعلان من در آورده هست) منظور : *(s +1 )
*(s +1 )
char *s="C++";
char s1[]="C++";
char *s;
s = (char *) malloc (strlen("C++"));
strcpy(s, "C++") ;
به نقل از sasan_66 :اونجا كه من ميدونم يه lvalue تمام عياره :happy: و به راحتي هم ميتونه سمت چپ expression قرار بگيره