重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
void InitStack(SqStack *S)
成都创新互联公司是一家专注于成都网站建设、做网站与策划设计,临桂网站建设哪家好?成都创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:临桂等地区。临桂做网站价格咨询:18982081108
{
int i;
for(i=0;iN;i++)
S-base[i]=0;
S-top=0;
}
C中函数参数是按值传递,你那样写修改的是复制的副本,本身没有修改,传递指针,间接修改。
其他的函数也一样,都需要传递指针。
不是inta[] 而是例如int a[10]这种。括号内一定要有个常量数字。
我们可以这样定义
#define N 5
int a[N]
这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];
对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为整形。
所有当表示浮点型可以定义为例如float a[10]。 举例如下:
扩展资料
数组名是由用户命名的C语言标识符,要遵循标识符命名规则。数组名表示数组存储区域的首地址。数组的首地址也就是第一个元素的地址。数组名是一个地址常量,不能对它赋值。
数组名后是由方括号括起来的常量表达式,不能使用其他括号
对于不同编译单位的全局变量,其初始化的顺序没有任何的保证,因此对不同编译单位里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。 此外也没办法捕捉到全局变量初始化抛出的异常,一般来说要减少全局变量的使用,特别是限制那些要求复杂初始化的全局变量。
1,尽量不用全局变量
2,用静态变量,通过访问器进行访问
例如:全局变量
int
a
=
5;
int
b
=
a;
如果a,和b定义在同一个文件里,那没什么问题,结果b等于5.
如果a和b定义在不同文件里,就不能保证b也等于5,也就是说不能保证a先初始化. 事实上,除了在同一个文件定义的全局对象的初始化是按照定义次序来进行的之外,其他全局或静态变量之间的初始化次序没有任何保障。解决这种问题的方法是不直接使用全局变量,而改用一个包装函数来访问,例如
int
get_a()
{
static
int
a
=
5;
return
a;
}
int
get_b()
{
static
int
b
=
get_a();
return
b;
}
通过C语言撰写程序,最经典的函数是static。
在C语言中,static的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0。
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条,分别是:一是隐藏功能,对于static修饰的函数和全局变量而言。二是保持持久性功能,对于static修饰的局部变量而言。三是因为存放在静态区,全局和局部的static修饰的变量,都默认初始化为0。
如果加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。
Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏。