题目
const 与指针:只读遍历字符串
思路
本题用 const char * 只读遍历字符串并输出,不能修改串内容。
当 *s 非结束符时,输出当前字符并令指针后移(putchar(*s++))。const 表示不能通过该指针改字符,误赋值会在编译阶段报错。
解题分析
const char *p 表示不能通过 p 改字符,p 本身可以指向别处。只读遍历用 const 表达意图,写入会编译报错。
完整程序
#include <stdio.h>
int main(void)
{
char s[500];
if (scanf("%499s", s) != 1) {
return 1;
}
for (const char *p = s; *p; p++) {
printf("%c\n", *p);
}
return 0;
}
运行示例
输入:
hi输出:
h
i