函数 内置函数 动态数组 字符

取随机数

srand();
int num = rand();//这样执行多次都是一个相同的数
如果每次都不同要每次取一个种子
所以一般与时间连用
#include<time.h>
srand(time(NULL));//调用时间,NULL这里指默认时间
exit(0)//正常退出程序,非0就是不正常退出(闪退)

system 管理员

system(“pause”);暂停
system(“cls”);清屏
system(“color 4E”);修改背景及字体色
system(“shutdown\r\t180”);180秒后关机

内置函数补充 动态数组

malloc()动态内存分配 编译时没有内存 程序运行后再分配内存
#include<stdlib.h>
例:

#include<stdlib.h>
{
	int * num;
	nums=(int*)malloc(sizeof(int) * 5);//为前面的指针动态分配20个字节的空间
	//而且元素是不确定的
	scanf.........
	free(num);//释放内存
}

calloc 与malloc类似
区别在于如果未给num里的空间赋值,calloc会默认为0,malloc是乱码
函数三要素
1:返回值类型
2:函数名
3:参数列表(有可能没有)

//计算圆面积的函数
void  function();
int main()
{
	function();//调用函数
}
void  function()
{
	double r , s;
	printf("请输入......");
	scanf("%lf",&r);
	s=3.14*pow(r,2);
	printf("%d",s);
}

如果函数用返回值,则必须用对应的类型来接收
return会终止函数并返回,可以返回空值

参数

形式参数:有类型,没有确定数值
实际参数:有类型,有确定数值

递归函数

函数自己调用自己叫递归函数

代码块

int main()
{
	int num=9;
	{
		int num=90;
	}
	prinyf("%d",num);
}

结果是9
因为两个花括号的num并不是同一空间

int num1=9;
{
	{int2=90;}
	printf("%d",num1+num2);
}

此时会报错,因为未定义num2
而如果printf在里面则不会报错,所以小括号可以访问大括号,
反之不行

变量

一个变量在离开花括号时就被销毁了,这种变量称为自动变量
局部变量:例如函数中的变量,只在函数中起作用
全局变量:一旦定义就只作用于该文件,不可以跨文件

变量的储存类型

auto int型的默认储存类型 auto int num==int num
register 寄存器 速度更快
static 静态储存 与全局变量相似 只作用于定义的文件
extern 外部变量 作用于所有文件

函数与数组

在向函数传递数组时传递的是地址,而且函数无法返回一个数组

字符串

例:char name1[]={‘j’,‘k’,‘l’,\0};//没有\0就只是一个字符数组
char name2[]=“jkl”;//两者等价,而且大小都是4
双引号不是字符串的一部分

{
	char words[50]="abc";
	scanf("%s",words);
	printf("%s",words);
}

结果是输入jkl,输出jkl
abc已经被覆盖
gets 逐字符输入
puts 逐字符输出
gets(words);//等价于scanf(“%s",words);
PS:gets无论多么长的字符串都能接收
fgets 头文件 string
从标准输入流中读取
例:fgets(words,10,stdin);
即无论输入多少,都只读取9个到words里,第10个是\n,没有\0了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值