复制
收藏
提问
简洁
#include <stdio.h> int main(int argc, char *argv[]) { char buf[] = "hello"; char *p = buf; /* printf("%c\n",*(p + 1)); printf("%c\n",*p); printf("%c\n",*(++p)); printf("%c\n",*p); */ printf("%c\n", *(p+1)); printf("%c\n", *p+1); printf("%c\n", *(p++ + 2)); printf("%c\n", *(p+1)+2); return 0; } 添加注释
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
代码注释添加
- 命令行参数:
main
函数的参数argc
和argv
用于接收命令行参数。argc
表示参数个数,argv
是一个字符指针数组,存储参数值367。 - 字符数组初始化:
char buf[] = "hello";
定义并初始化一个字符数组buf
,存储字符串 "hello"9。 - 指针操作:
char *p = buf;
声明一个字符指针p
并初始化为指向buf
的首地址。 - 打印字符:注释掉的
printf
语句用于演示指针运算和字符访问,但当前被注释,不执行1。 - 指针运算:
*(p+1)
访问p
指向的字符后的第二个字符,*p+1
将p
指向的字符的 ASCII 值加 1,*(p++ + 2)
先将p
向前移动一个字符,然后加上 2,访问该位置的字符,*(p+1)+2
访问p
指向的字符后的第二个字符,然后将其 ASCII 值加 2。
#include <stdio.h>
int main(int argc, char *argv[])
{
// 定义并初始化字符数组 buf,存储字符串 "hello"
char buf[] = "hello";
// 声明字符指针 p 并初始化为指向 buf 的首地址
char *p = buf;
// 下面的 printf 语句演示了指针运算和字符访问
// 但当前被注释,不执行
// printf("%c\n",*(p + 1)); // 打印 'e'
// printf("%c\n",*p); // 打印 'h'
// printf("%c\n",*(++p)); // p 向前移动一个字符,打印 'e'
// printf("%c\n",*p); // p 此时指向 'e'
// 打印 'e',p+1 访问 p 指向字符后的第二个字符
printf("%c\n", *(p+1));
// 将 p 指向的字符 'h' 的 ASCII 值加 1,打印 'i'
printf("%c\n", *p+1);
// p 先自增,指向 'e',然后加上 2,访问 'l',打印 'l'
printf("%c\n", *(p++ + 2));
// 访问 p 指向的字符后的第二个字符 'e',然后将其 ASCII 值加 2,打印 'g'
printf("%c\n", *(p+1)+2);
return 0;
}
你觉得结果怎么样?