woainilp 发表于 2020-5-13 14:59:24

C语言

我想问一下,这两个初始化都对吗
int a【】={0};
int a={10*1};
有人说两个都对,有的说第二个不对。
麻烦会的帮忙看一下,最好解释一下,谢谢

ba21 发表于 2020-5-13 15:00:52

a【】这能对?

永恒的蓝色梦想 发表于 2020-5-13 15:02:25

第一个错的,语法错误
第二个是对的,但可能不是你预期的结果

sunrise085 发表于 2020-5-13 15:12:13

第一种,是不是你发帖的时候写错了?
第二种没有语法错误,但是估计不是你想要的结果。
用下面程序看一下数组的结果,你看是你想要的吗?
#include <stdio.h>
int main() {
    int a={0};//第一个你是不是打算这样写?
    int b={10*1};
    for (int i=0;i<10;i++)
        printf("a[%d]=%d,b[%d]=%d\n",i,a,i,b);
    return 0;
}

woainilp 发表于 2020-5-13 15:15:21

ba21 发表于 2020-5-13 15:00
a【】这能对?

里面必须要有数是吗,如果没有数的话,是不是除了赋值的,会有无穷多个0

ba21 发表于 2020-5-13 15:18:06

woainilp 发表于 2020-5-13 15:15
里面必须要有数是吗,如果没有数的话,是不是除了赋值的,会有无穷多个0

我只是想说【】中文也能行?

woainilp 发表于 2020-5-13 15:44:00

sunrise085 发表于 2020-5-13 15:12
第一种,是不是你发帖的时候写错了?
第二种没有语法错误,但是估计不是你想要的结果。
用下面程序看一下 ...

第一个是int a[]={0};
这种表达没错吧

sunrise085 发表于 2020-5-13 15:48:02

woainilp 发表于 2020-5-13 15:44
第一个是int a[]={0};
这种表达没错吧

语法上没错。但是定义并初始化一个数组变量,却不给出长度。容易出问题

woainilp 发表于 2020-5-13 15:50:54

sunrise085 发表于 2020-5-13 15:48
语法上没错。但是定义并初始化一个数组变量,却不给出长度。容易出问题

好的,谢谢
页: [1]
查看完整版本: C语言