gpt4 book ai didi

c - printf() 打印整个数组

转载 作者:太空狗 更新时间:2023-10-29 16:42:34 53 4
gpt4 key购买 nike

假设我的C 程序 中有以下代码:

#include <stdio.h>

void PrintSomeMessage( char *p );

int main(int argc, char *argv[]) {
char arr[10] = "hello";
PrintSomeMessage(&arr[0]);
return 0;
}

void PrintSomeMessage(char *p)
{
printf("p: %s",p);
}

为什么它的输出是整个单词“hello”而不是单个字符“h”?

不过,我明白,如果我在格式化程序中放入一个 "%c",它只会打印一个字母。但是,这个地址中每个字母的内存地址仍然不同。请问有人给我解释一下吗?

最佳答案

But still, the memory address for each letter in this address is different.

内存地址不同,但作为其字符数组,它们是连续的。当您传递第一个元素的地址并使用 %s 时,printf 将打印从给定地址开始的所有字符,直到找到 '\0'

关于c - printf() 打印整个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962144/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com