C语言中报错变量未被初始化就使用

各位老铁们,大家好,今天由我来为大家分享c语言变量不定义会报错吗,以及为什么c语言不建议变量的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

  1. c语言中变量定义怎样才合法
  2. c语言变量名不合法的是
  3. C语言为什么不建议把变量作为数组长度
  4. c语言变量不定义会报错吗

c语言中变量定义怎样才合法

在C语言中用于标识名字的有效字符序列(变量名,函数名,常量名,语句标号)称为标识符

合法的变量名

由字母,数字和下划线组成组成

第一位只能为字母或下划线

不能和C语言保留字完全相同

注意:

C语言标识符是区分大小写的,也就是说a和A是不相同的,

c语言变量名不合法的是

不合法的C语言变量名,一是命名不符合标识符的命名规则。

二是使用了关键字、保留字作为变量名了。用C语言编写程序时,如果要使用变量,必须先声明。而声明变量就指明变量的类型和为变量命名。

命名变量,必须以字母或下划线开头,后面可以跟字母、数字或下划线,如stu,sum等,同时注意关键字和保留字不能作变量使用,如int,char等。

C语言为什么不建议把变量作为数组长度

数组的大小不能用变量表示的,是因为在编译连接期间内存要按照你制定的长度给数组分配相应的内存空间,如果是变量的话就没有办法给它分配了,你可以用符号常量来解决,在开头用:

#definem100

#definen100然后在程序中就可以定义u[m][n]二维数组了,当不一定非要是100,可以是任何一个正整数。

C语言里,所有变量空间都是在程序运行之初向系统申请的,包括和指针,它也需要空间,除了一些动态申请方式如malloc函数。没有申请的空间系统是不允许读写的。那么如果一个数组大小是变量定义,则在程序运行前不能确定数组大小,也就无法申请,故不允许。解决的办法如前面所说,如:

inta[n];

可改为

int*consta=(int*)malloc(sizeof(int)*n);

这样a变量就完全可以当作一个数组直接使用了,包括a[1]之类的。因为“[]”中括号运算符做的只是偏移其内的地址数并取值。如:

a[1]

等价于

*(a+1)

而const修饰符在星号之后,则表示指针在被声明后不能改变,即只能指向这个获取的空间,完全符合数组的性质。

015

更多回答(9)

c语言变量不定义会报错吗

会的。

C语言是强类型语言,必须定义变量名,而且定义变量是为了给该变量提供一个内存区。

不定义就使用在编译的时候是不会通过的,编译器会报错。

一般的,为了要达到最大的兼容跨平台性,还是放在函数开头定义。因为C89规定,在任何执行语句之前,在块的开头声明所有局部变量。

OK,关于c语言变量不定义会报错吗和为什么c语言不建议变量的内容到此结束了,希望对大家有所帮助。

C语言怎么定义变量