`

c语言变量的相关知识

 
阅读更多

全局变量:使用全局变量在函数之间共享数据;

自动变量:超出作用域后,他们在堆栈上分配的内存会自动被释放;

静态变量:使用static修饰的变量,也是在函数内定义;

静态变量与自动变量对比:

1.静态变量虽然定义在函数内,但是函数退出后不会删除,仍会保留下来;

2.自动变量每次进入变量作用域时都会初始化一次,而静态变量只在程序启动第一次进入作用域时初始化一次;

3.静态变量只能在其声明的函数内可见,但它是一个全局变量;

c语言结束程序的方式:

1.main执行到结尾,调用return语句,程序结束;

2.调用abort()方法,程序非正常结束;#include <stdlib.h>

3.调用exit(0)方法,程序正常结束;调用exit(1)方法,程序非正常结束;#include <stdlib.h>

 

#include <stdio.h>
#include <stdlib.h>

//函数声明
int sum(int, int);
int product(int, int);
int different(int, int);


//c语言就是由许多函数组成的,其中main是执行的起点,函数之间互相调用
int main() {
	printf("函数指针使用方法:\n");
	int a = 10, b = 5;
	int result = 0;
	int (*pfun)(int, int); //声明一个函数指针

	pfun = sum; //指针传递
	result = pfun(a, b);
	printf("result: %d\n", result);
	exit(1);

	pfun = different;
	result = pfun(a, b);
	printf("result: %d\n", result);

	pfun = product;
	result = pfun(a, b);
	printf("result: %d\n", result);
	printf("\n");

	//函数指针数组
	int (*pfuns[3])(int, int); //声明一个函数指针数组   指针是一个变量,函数指针可以像其他变量一样使用
	pfuns[0] = sum;
	pfuns[1] = different;
	pfuns[2] = product;
	int i = 0;
	while (i < 3) {
		result = pfuns[i](a, b);
		printf("result: %d\n", result);
		i++;
	}

	printf("\n");
	printf("%d", sum(5, 6));
	printf("%d", sum(5, 6));
	printf("%d", sum(7, 8));

	return 0;
}

int sum(int x, int y) {
	static int su = 0;
	su += x;
	return x + y;
}

int product(int x, int y) {
	return x * y;
}

int different(int x, int y) {
	return x - y;
}
分享到:
评论
Global site tag (gtag.js) - Google Analytics