monkey__ 发表于 2021-1-9 22:14:26

C语言求助

#include <stdio.h>

int main()
{
      char *name = "FishC";
      char name1[] = {'F','i','s','h','C'};

      printf("%d\n",sizeof(name));
      printf("%d\n",sizeof(name1));


      return 0;
}

============================

# gcc test.c && ./a.out
8
5


请问为何运行结果里name的长度是8?

斯诺非 发表于 2021-1-9 22:22:21

这个name的类型是char *也就是指针类型,而指针占8个字节
*name是char类型,占一个字节

风过无痕1989 发表于 2021-1-10 15:22:40

我 win10,VS2015 运行的结果是
4
5

计较这些东东没有什么意义,知道是怎么回事就行了,因为不同的系统(32位或64位)会有所不同,不同的编译器设置也会有所不同。

现实老年人 发表于 2021-1-11 14:20:04

你求是char类型的数组的大小而不是那个字符串的大小
页: [1]
查看完整版本: C语言求助