l********y 发帖数: 1327 | 1 每次执行到*c1 = *c2的时候就出错,如果仅仅是swap两个char没问题,但是用C的char
数组时就不行,这里也没有牵涉到'\0'啊,不明白?
char * c = "abcde";
char * c1 = &c[0];
char * c2 = &c[4];
swap(c1,c2);
void swap(char * c1, char * c2){
char temp = *c1;
*c1 = *c2;
*c2 = temp;
} | d**e 发帖数: 6098 | 2 因为这样定义c时,它相当于一个string constant,不能swap去修改它的值。
改成 char c[] = "abcde" 应该就可以。
char
【在 l********y 的大作中提到】 : 每次执行到*c1 = *c2的时候就出错,如果仅仅是swap两个char没问题,但是用C的char : 数组时就不行,这里也没有牵涉到'\0'啊,不明白? : char * c = "abcde"; : char * c1 = &c[0]; : char * c2 = &c[4]; : swap(c1,c2); : void swap(char * c1, char * c2){ : char temp = *c1; : *c1 = *c2; : *c2 = temp;
| l********y 发帖数: 1327 | |
|