c语言中能对函数赋值吗 c语言能不能对函数重写

C语言中 在一个函数中用 static修饰的变量,还能给它赋上新值吗?

可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。

创新互联是一家专业提供神池企业网站建设,专注与做网站、网站设计、H5页面制作、小程序制作等业务。10年已为神池众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

像在VB,C#,C,C++,Java,PHP,Objective-C,JavaScript中我们可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、PROLOG、Ada等语言中也是有出现的,只是有着不同的作用,对于其具体作用,读者有需要的时候是可以具体查阅的。

扩展资料:

静态全局变量有以下特点:

该变量在全局数据区分配内存;未经初始化的静态全局变量会被程序自动初始化为0(在函数体内声明的自动变量的值是随机的,除非它被显式初始化,而在函数体外被声明的自动变量也会被初始化为0);

静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。

C语言中输入函数赋值?

n = scanf("%d",n);

这一句有问题

1. scanf 函数是有返回值的,它的返回值可以分成三种情况

1) 正整数,表示正确输入参数的个数。

例如执行 scanf(“%d %d”, a, b);

如果用户输入”3 4”,可以正确输入,返回2(正确输入了两个变量);

如果用户输入”3,4”,可以正确输入a,无法输入b,返回1(正确输入了一个变量)。

2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入”,3 4”,返回0。

3) EOF,这是在 stdio.h 里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

你这个输入一个返回值就是1,因此n也会一直等于一

c语言中可不可以直接在函数首部直接给参数赋值

不明白你的意思……是不是类似于这样 int hello(char a,int i = 4,int m = 9){} ?

这样在c语言中是不可以的,这是c++的概念,默认参数,使用方法如下:以上面的hello函数为例

hello(n); 默认i=4,m=9。 hello(n,5,23); 这里在函数中i = 5,m = 23.

就是说,如果调用时给参数赋值了,就使用赋值的,如果没有,就使用默认的

需要标明一点,这种函数参数表有个规则,就是所有的默认参数都靠后,即:int hello(int a = 1,int b,int c=23){} 是错误的……而且,使用时,也不可以跳过一个默认值给后面的值赋值,如:

int hello(char a,int b= 12,char c = 'd')如果想参数b使用默认而给c赋值,那么必须是hello(a,12,c),如果跳过赋值b,即:hello(a,c);就是错的,很好理解,这样就把c赋值给参数b了,一定报错。


本文标题:c语言中能对函数赋值吗 c语言能不能对函数重写
转载源于:http://scyanting.com/article/ddidhgg.html