scanf("%s", name); 这里为什么可以不用写 & 符号

这是那个脚本:
#include <stdio.h>

int main()
{
char name[256];
float height, weight;

    printf("请输入您的姓名:");
    scanf("%s", name);

    printf("请输入您的身高(cm):");
    scanf("%f", &height);

    printf("请输入您的体重(kg):");
    scanf("%f", &weight);

    printf("========== 正在为您转换 ==========\n");

    height = height / 2.54; // 厘米转换为英寸
    weight = weight / 0.453; // 公斤转换为磅

    printf("%s的身高是%.2f(in),体重是%.2f(lb)。\n", name, height, weight);

    return 0;

}

问题是
scanf("%s",name); 这里为什么可以不加 & 这个符号

&是一个取地址运算符,&后面加变量名表示“该变量的地址”,所以&i就表示变量 i 的地址。&i又称为“取地址i”,就相当于将数据存入以变量 i 的地址为地址的变量中。而字符数组,数组名本身就是指一个地址。,所以不用写。
有帮助的话采纳一下哦!

因为此处是字符数组,数组的话,只写数组名,就表示它的首地址
加&是取地址,此处你可以加上,不加也行

img