1. 关于c语言中规定变量必须先定义后使用的问题
并未要求一次性将所有的变量声明或者定义,只要求在使用某个变量之前先定义。变量的定义风格利弊如下:
1、变量在函数开头定义:便于修改。
2、变量就近定义:便于阅读。
3、变量在块语句的开头定义:有的临时变量放在语句块开头,可以不用在函数开头定义,并且在使用完毕后释放空间,可以这么做,但不要无故添加花括号来提高代码的结构。
一般的,为了要达到最大的兼容跨平台性,还是放在函数开头定义。因为C89规定,在任何执行语句之前,在块的开头声明所有局部变量。
如以下代码:
(1)c语言中规定简单变量扩展阅读:
c语言变量定义和保存格式的关系:
1、源文件保存为.c格式的话变量只能定义在最前,若保存为.cpp格式的话,变量定义较为灵活,不用在最前。
2、在C语言里,变量只能在函数的开头处声明和定义。在函数里要用到的变量必须要在开头处声明定义。声明定义的前面不能有任何其他非声明定义的语句。全局变量在函数体的外部声明定义。
而C++里(.CPP文件是按C++标准编译的),只要在用到变量前对该变量进行声明定义就行了,位置不做特别要求。而C语言的就定了在一个模块里(函数、循环体等)先声明一切所需变量后才能进行相关操作的规定。
2. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是
答案是B,单向的值传递
简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单向的值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。
(2)c语言中规定简单变量扩展阅读:
形参和实参的特点:
1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
参考资料:网络——形参
3. C语言中,简单变量作为参数,调用函数数后,什么时候值改变,什么时候不变
常规类型(int、double、float、char等)的都不会变
指针类型(int*、double*、float*,char*等)的都会变
数组类型(int[]、double[]、float[],char[])的也都会变
类也会变(c++范畴)
总而言之:参数指向值的,都不会变;参数指向地址的都会变(数组也是指向地址的。可以理解为本质也是指针)
4. c语言变量名的命名规则是什么
c语言变量名规则是:
1、变量名以英文字母开头。
2、变量名中的字母是区分大小写的。
3、变量名不能是关键字。
4、变量名中不能包含空格、标点符号和类型说明符。
变量是在C语言的基本语法对象。语言本身的变量名,依赖范围(可变的源代码文件和函数,狭窄的命名空间)唯一标识一个变量。
变量名是一个标识符在C语言中,用来区分不同变量的语义。
地址是连续的非负整数值的存储器空间的位置的集合。对于一个特定的地址,这是一个非负的整数,并通常表示的单元(在存储器的大小通常为1个字节)的位置。操作中,存储器中的内容的任意位置可以包含明确地址的机器指令来实现。的连续出现指定的相继有序的存储区的内容可以被称为“值。”
C语音可以明确地解决分配在编译的语法对象称为左值。 &运算符的左值的地址。变量在编译时将被分配到一个IP地址是属于左值。如定义字符A,INT B,你和一个char型变量,b表示一个int变量b的地址。
大小(字符)== 1,char变量占用一个字节,一个地址变量实际上是一个运行周期所占用,而内容的存储单元地址和一个值。是sizeof(int)> 1(通常是32位环境中,4)的B&B本身所占用的地址空间不说,但简单的1个字节之一。
b这个变量反映对象的语义,首先解决的是sizeof(int)和BA连续有序字节的内存空间的内容(以字节为单位,这个值的内容的一部分,C语言不明确,根据编译器环境中),被调用时,b的值。
指针在C语言中是一类变量(同时具有了更强的类型比一般的整型变量的特性,如一定要防止滥用为目的的计算限值代表的非负整数的地址)。相应的常量称为地址常量。