跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么 C 和 Java 声明数组的语法不同,有什么故事吗?
未分類
8 11 月 2020

为什么 C 和 Java 声明数组的语法不同,有什么故事吗?

为什么 C 和 Java 声明数组的语法不同,有什么故事吗?

資深大佬 : AndyAO 7

public class CharArrayTest {     public static void main(String[] args) {         type[] arrayRefVar_0;   // 首选的方法         type arrayRefVar_1[];  // 效果相同,但不是首选方法     } }  
type arrayName [ arraySize ]; 

感觉 Java 的首选方法更符合我的直觉.

大佬有話說 (9)

  • 資深大佬 : lonewolfakela

    c 语言的所有类型声明都遵守一个基本的格式:一个“类型” + 一个“用法范例”,数组也不例外
    就以数组声明为例子:
    int array[1000]
    这个意思是说,如果我们按照
    array[整数]
    这样的格式写一个表达式,就能得到一个 int 型的结果。

    如果说数组声明对这个格式的体现还不太明显的话,可以看看函数指针的声明:
    int (*p) (int, int)
    这表示,如果我们按照
    (*p)(整数, 整数)
    这样的格式写一个表达式,就会得到一个 int 型的结果。

    所以总结下来,c 语言声明语句最左侧其实是写的“这个变量在正确使用后会得到一个什么类型的结果”而不是“这个变量本身是什么类型”,而除开最左边的那个类型之外,声明的右半部分其实是对被声明变量的使用方法的一个示例。

  • 資深大佬 : lonewolfakela

    相比之下,type[] array 这种风格的声明是更直接的一种:声明的左半部分是“被声明变量本身的类型”,右半部分是“被声明变量的名字”。
    这种写法确实更符合更多人的直觉(对数组类型还不太明显,但是如果你写一个返回函数指针的函数指针就能明白 c 语言的那种风格有多不直观了),所以比较新的语言更多地都是采用 type[] array 风格的。

  • 資深大佬 : chihiro2014

    跟编译原理有关

  • 資深大佬 : icyalala

    Java:
    int[] arrayName = new int[100];

    C:
    int* arrayName = calloc(100, sizeof(int));

    这样就一样了

  • 資深大佬 : tairan2006

    C 的数组就是一个指针

  • 資深大佬 : xiangyuecn

    int array[100] 眼睛告诉大脑是 100 个 array❌
    int[100] array 眼睛告诉大脑是 100 个 int✅

    肉眼可见的伪代码

  • 資深大佬 : angryfish

    看看 cpo

  • 資深大佬 : angryfish

    cpp

  • 資深大佬 : jin7

    JAVA 是最好的语言。。。。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具