第二课(顺序语句、选择语句、循环语句、函数思想、可见性(作用域)和生存期、数组)


前言

记录1.6学习内容及要点,主要内容:顺序语句、选择语句、循环语句、函数思想、可见性(作用域)和生存期、数组


一、语句

顺序语句

按照语句出现的先后顺序依次执行;

选择语句

根据条件判断是否执行相关语句;

//if——else语句
	if(T/F)
		T执行
	else
		F执行
//switch —— case 语句
	switch(表达式){
	case 常量值1:
		语句体1;
		break;
	case 常量体2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
	}

循环语句

当条件程成立时,重复执行某些语句

for(  ; 条件; 自增 ){
		循环体
}

do {
 	循环体
}while(判断条件)

while(条件){
 循环体
}

二、函数思想

通过函数将一个复杂问题拆解为若干个易解决的小任务。体现结构化程序设计由粗到精的设计思想
封装性

  1. 考虑函数名(见明知意)
  2. 考虑传入的参数(数量、类型)
  3. 考虑返回值(类型)

以一个个函数实现具体的小任务,以此,逐步实现某复杂问题
嘻嘻嘻 一个有趣的理解

老师让我去买烟,给了钱让买华子(嗯 参数有了),我买了把华子给了老师(返回值)


三、可见性(作用域)和生存期

可见性(作用域)

标识符能够被识别的范围
如:形参或在函数内部定义的局部变量,他们的作用域都在该函数内。在函数外部定义的标识符——全局变量,作用域为从定义起至整个源文件结束。

生存期(生命期)

特指程序的执行过程

标识符从程序运行开始被创建、具有空间 至程序结束、释放空间之间的时间

  1. 局部变量生存期:从函数被调用,到该函数执行完毕。存放在 .stack(栈区)在栈帧中存放
  2. 全局变量生存期:从程序执行前开始,到该程序执行后结束。存放在 .data(数据区)
  3. 动态生命期:标识符有特定的函数或运算来创建或释放。如:调用malloc()为变量分配存储空间,变量生命期开始,调用 free()释放空间或程序结束,变量生命期结束。存放在 .heap (堆区)

在这里插入图片描述


四、数组

相同类型元素的集合 在对数组的介绍中要说明类型、大小

定义形式如下:

int a[5] = {1,2,3,4,5};   //sizeof(a) = 4*5 =20; a是5个int元素数组
char ch[] = {'a', 'b', 'c', 'd'};  //4字节
int b[3];
int c[10] = {0,1,2,3}

计算数组的长度:

	int ar[] = {1, 2, 3, 4, 5}
	int len = sizeof(ar) / sizeof(ar[0]); //整个数组的大小 除 一个元素的大小 = 元素个数

字符串的长度 != 字符数组的大小

int main()
{
	char stra[] = { "hello" };
	printf("lenth: %d:", strlen(stra));  // 5 5个字符,不算\0
	printf("size: %d:", sizeof(stra)); //6 5个字符 + 结尾\0
}

给数组赋值: 1.for 循环挨个赋值 2.头文件:<string.h>; memcpy (目标数组, 来源数组, 赋的个数); strcpy_s (目标数组, 来源数组);

#include<stdio.h>
#include<string.h>
int main()
{
	char str_a[] = { "Hello world" };
	char str_b[6];
	
	char str_one[] = "Tomorrow";
	char str_two[20];
	
	memcpy(str_b, str_a, 4);	
	strcpy_s(str_two, str_one);
}

结果:
在这里插入图片描述
在这里插入图片描述
字符串内容比较:头文件:<string.h>
函数:strcmp(str1,str2)
返回值:若str1 < str2: 返回负数; 若str1 = str2:返回0; 若str1 > str2:返回正值
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止

总结

  1. c语言函数封装性的思想
  2. 作用域和生存期的理解
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值