Linux下C语言学习(二)——流程控制语句和数组的学习
来源:互联网 发布:淘宝的伞黑胶都在外面 编辑:程序博客网 时间:2024/05/10 07:26
流程控制语句:
1、条件分支
if(条件){语句1;}
else if(条件) {语句2;}
...
else {语句n;}
例子:
#include <stdio.h>
int main()
{
int money= 0;
printf("请输入要存取的金额:\n");
scanf("%d",&money);
if(money< 10000)
{
printf("先生,请耐心排队\n");
}
//else后面没有条件
else
{
printf("先生,这边请\n");
}
return 0;
}
2、多分支结构
switch(变量/表达式) //变量/变达式结果类型只能是整型或者char型
{
case 常量/字面量:语句1;[break;]
....
[default:语句n;]//位置无关
}
main(){ int fs; scanf("%d",&fs); switch(fs) { case 0 :printf("e");break; case 1 :printf("e");break; default:printf("cuo");/ } }
注意:
分支之间的顺序不是固定的,但是不能有重复的分支....
switch语句是穿透的, 也就是说当程序判断某个case的条件为真后,它将在执行该case所带的的语句块之后不再对后面的case的条件进行判断而直接执行
3、循环
while(条件) {循环体;}
do{循环体;}while(条件); 一般用于至少执行一次的情况
for(语句1;语句2;语句3) {循环体;
例子:
int main()
{
Int a[]=newint[10];
for (int i=0,i<10;i++) //C99 允许 C89不允许
a[i]= 0;
}
数组:
数组的定义
数据类型 数组名[数组的长度];
例如:
int nums[10]; 表示定义了一个可以保存10个int类型数据的名为nums的数组
数组名代表整个数组的首地址
变长数组(C99支持)
例子:
int num = 0;
printf("请输入数组的长度:\n");
scanf("%d",&num);
//使用变量定义数组
int arr[num];
数组的初始化
(1)全部初始化
int nums[5] = {11,22,33,44,55};
(2)部分初始化
int nums[5] = {11}; 剩余的元素默认初始化为0
int nums[5] = {0}; 一般用于将数组中所有的元素初始化为0
int nums[5] = {}; 将数组中所有元素初始化为0,不推荐使用
(3)指定初始化
int nums[5] = {[2] = 33}; 将数组中第三个元素初始化为33
(4)数组的遍历
for(i = 0; i < n; i++)
{
printf("%d",nums[i]);
}
必须通过下标进行一个个遍历
数组的下标越界访问问题
由于定义的数组有自己的大小,
如int num[5], num 这个数组管理的范围最大值就是 sizeof(int)*5 ,当使用下标进行访问是时候,若下标的范围超过管理范围则就会产生越界问题,有时候会产生段错误,因为越界访问的内存有别的数据,访问权限不归你,所以产生段错误
二维数组——实际上是一维数组,分成等比例几分,内存连续
二维数组的定义
数据类型 数组名[行数][列数]
例子:
int arr[3][4]; 表示定义了一个3行4列的二维数组
注意:
二维数组在内存中是按照行主序进行排列的
二维数组的初始化
全部初始化
int arr[2][3]; 看做具有两个元素的数组,而每一个元素又是一个具有三个元素的一维数组
int arr[2][3] = {{11,22,33} ,{44,55,66}};
部分初始化
int arr[2][3] = {{11,22},{33}}; 剩余元素默认初始化为0
表格方式显示:
11 22 0
33 0 0
int arr[2][3] = {{0}}; 表示将二维数组中所有元素初始化为0
int arr[2][3] = {0}; 也可以初始化为0
指定初始化
int arr[2][3] = {[0][2]=33}; 将第一行中第三个元素初始化为33
- Linux下C语言学习(二)——流程控制语句和数组的学习
- C语言学习笔记(二)——流程控制【重点】
- C语言学习笔记(二)流程控制
- Linux 下C语言的学习(五)——指针的学习(数组指针,指针数组,数组退化)
- (二)JNI学习之C语言基础,控制语句
- c语言学习笔记(4)——流程控制
- C语言学习十流程控制的学习之分支语句
- C语言学习笔记 (二) C语言的语句
- C语言学习-流程控制
- oracle控制语句学习二——case流程控制语句
- Java语言基础(二)——数据类型、运算符和流程控制语句
- 流程控制(学习C语言的转折点)
- Linux 下C语言 指针学习 二 (数组与指针)
- Go语言学习(五)流程控制语句
- GO语言学习三(流程控制语句)
- PHP学习笔记——特殊的流程控制语句
- Python3 学习手册(二) 流程控制语句
- C语言5种程序语句(1)——流程控制语句中的结构化语句(条件语句和循环语句)
- java web进阶篇(五) JSP标准标签库 ** 核心标签***
- STC单片机 定时器时钟FOSC 1T 12T、定时器模式
- UVA10038 Jolly Jumpers
- Jquery Mobile 插件 iscroll的使用
- Struts2教程4:使用validate方法验证数据
- Linux下C语言学习(二)——流程控制语句和数组的学习
- 确定进制(经典水题)
- 垃圾回收(garbage collection)介绍
- 直接路由的高可用LVS集群配置
- 程序员必须知道的10大基础实用算法及其讲解
- OpenCV的序列数据结构
- 9. 多线程 Part 3 同步与死锁 --- 学习笔记
- 动态链接库和静态链接库
- Struts2教程5:使用Validation框架验证数据