关于c语言中指针操作字符串和指针取值的问题

2025-05-13 12:54:19
推荐回答(2个)
回答1:

问题一里,如果你想打印字符串,printf第二个参数应该是地址而不是地址里的内容,
如果你想打印一个字符,应该是%c而不是%s
应该写为printf("%s\n",(buf+1)); 或者 printf("%c\n",*(buf+1)); (输出是e)
问题二和一应该是同样的错误
printf("%s\n",p);是打印整个字符串'test'
如果你只打印一个字符,比如s
printf("%c\n",*(p+2));

回答2:

printf输出字符串需要传入的参数应是你想要开始的地址,把buf+1前面的解引用(*)去掉即可

*(buf+1)传递的是值应该用于输出字符的情况,如printf("%c\n",*(buf+1));

第二个同理;

推荐一本c语言语法书,c prime plus ,对于这种基本语法解释的相当清楚