帝企鹅的日记 发表于 2019-12-5 15:34:32

关于c++的字符指针赋值问题

#include <iostream>
using namespace std;
void func(char *s,char *t){
        char k;
        k=*s;
        *s=*t;
        *t=k;
        s++;
        t--;
        if(*s){
                func(s,t);
        }
}
void main(){
        char str="abcdefg",*p;
        p=str+strlen(str)/2+1;
        cout<<p<<endl;
        func(p,p-2);
        cout<<str<<endl;
}
结果为:efg
            gfedcba
哪位大佬可以解释一下:p=str+strlen(str)/2+1;的含义

笨小孩丶 发表于 2019-12-6 14:59:22

str表示首地址,,strlen(str)是字符串的长度也就是7;所以p就是首地址str+7/2+1就是指针指向第五个元素e!

帝企鹅的日记 发表于 2019-12-7 16:46:28

笨小孩丶 发表于 2019-12-6 14:59
str表示首地址,,strlen(str)是字符串的长度也就是7;所以p就是首地址str+7/2+1就是指针指向第五个元素e!

谢谢,已明白
页: [1]
查看完整版本: 关于c++的字符指针赋值问题