%r 在 C 语言中是格式化输出的转换说明符
%r 是 C 语言中 printf() 和 scanf() 函数中常用的格式化输出和输入转换说明符。它用于打印或读取一个指针的值。
格式化输出(printf() 函数):
用法: printf("%r", &variable); 效果:打印变量 variable 的地址。格式化输入(scanf() 函数):
立即学习“C语言免费学习笔记(深入)”;
用法: scanf("%r", &variable); 效果:从输入中读取一个地址并存储在变量 variable 中。注意:
%r 转换说明符仅适用于指针变量。 打印指针变量时,输出结果会因编译器和平台而异。通常会以十六进制格式打印地址。 读取指针变量时,输入必须是有效的内存地址。否则,读取操作会失败。示例:
<code class="c">int main() {
int *ptr = malloc(sizeof(int));
*ptr = 10;
printf("Pointer value: %r\n", ptr); // 输出指针地址
scanf("%r", &ptr); // 从输入中读取指针地址
printf("Dereferenced pointer value: %d\n", *ptr); // 输出通过指针访问的值
return 0;
}</code> 