首页 > 其他分享 >C语言学习笔记-4

C语言学习笔记-4

时间:2024-11-27 23:02:53浏览次数:12  
标签:语句 初始化 10 int 笔记 C语言 学习 数组 表达式

四、控制语句

1.选择控制语句

1、if 语句

1)

if()
{
   语句1;
   语句2;
}

如果条件成立执行大括号里的所有语句, 不成立的话大括号里的语句不执行

2)

if(条件表达式)
{ 

} 
else
{

}

如果 if 的条件成立, 执行 if 后面{}内的语句, 否则执行 else 后的语句

3)

if(条件表达式 1)
{

} 
else if(条件表达式 2)
{ 

} 
else if(条件表达式 3)
{ 

}
else
{

}

从上往下判断, 一旦有成立的表达式, 执行对应的复合语句,下边的就不再判断了, 各个条件判断是互斥的

2、switch 语句

switch(表达式) //表达式只能是字符型或整型的(short int int long int)
{
case 常量表达式1:语句1;break;
case 常量表达式2:语句2;break;
default: 语句3; break;
} 

注意: break 的使用,无break,向下依次执行,直到break为止。

2.循环控制语句

1、for循环

for(表达式1;表达式2;表达式3)
{
   循环体
}


break
for(表达式1;表达式2;表达式3)
{
   if(1)
   {
   break; //结束break所在的循环,不是跳出if
   }
   循环体
}
continue
for(表达式1;表达式2;表达式3)
{
   if(1)
   {
   continue; //结束当前所在的循环,进入下一次循环
   }
   循环体
}
goto

跳转至标签(标签名:)处往下执行

printf("test0\n");
printf("test1\n");
goto tmp;//跳转至已有标签处
printf("test222222222222222222\n");
printf("test3333333333333333\n");
tmp://标签
printf("test6\n");
/*
  test0
  test1
  test6
*/

循环嵌套
int i,j;
for(i=0;i<5;i++)
{
   for(j=0;j<5;j++)
   {
     printf("i=%d,j=%d",i,j);
   }
}
//外层循环一次,内层完整循环一次

2、while循环

1)

while()
{

}

进入 while 循环的时候, 首先会判断条件表达式是否为真, 为真进入循环体, 否则退出循环

do
{

} while();

先执行循环体里的代码, 然后去判断条件表达式是否为真, 为真再次执行循环体, 否则退出循环

五、数组

1.数组的概念

数组是若干个相同类型的变量在内存中有序存储的集合。

int a[10];//定义了一个整型的数组 a, a 是数组的名字, 数组中有10 个元素,
//每个元素的类型都是 int 类型, 而且在内存中连续存储。  

2.数组的分类

按元素类型分类

1) 字符数组

即若干个字符变量的集合, 数组中的每个元素都是字符型的变量

char s[10]

2)短整型的数组

short int a[10];
a[0]=4;
a[9]=8;

3) 整型的数组

int a[10];
a[0]=3;
a[0]=6;
  1. 长整型的数组
long int a[5];

5) 浮点型的数组(单浮点、 双浮点)

float a[6]; 
a[4]=3.14f;
double a[8];
a[7]=3.115926;

6) 指针数组

char *a[10];
int  *a[10];

7) 结构体数组

struct stu boy[10];

按维数分类

一维数组

int a[30];

类似于一排平房

二维数组

int a[2][30];

可以看成一栋楼房 有多层, 每层有多个房间, 也类似于数学中的矩阵 二维数组可以看成由多个一维数组构成的。 有行, 有列,

多维数组

int a[4][2][10];//80个元素

三维数组是由多个相同的二维数组构成的

int a[5][4][2][10];

3.数组的定义

定义一个数组, 在内存里分配空间

1、一维数组的定义

格式:

数据类型+数组名+[数组元素个数];

int a [10];
char b[5];//定义了5个char类型变量的数组b
//5个变量分别为 b[0],b[1],b[2],b[3],b[4]

在数组定义的时候可以不给出数组元素的个数, 根据初始化的个数来定数组的大小

2、二维数组的定义

格式:

数据类型+数组名+[行的个数] [列的个数]

int a[4][5];//定义了20个int类型的的变量
/*
a[0][0] ,a[0][1],a[0][2] ,a[0][3] ,a[0][4];
a[1][0] ,a[1][1],a[1][2] ,a[1][3] ,a[1][4];
a[2][0] ,a[2][1],a[2][2] ,a[2][3] ,a[2][4];
a[3][0] ,a[3][1],a[3][2] ,a[3][3] ,a[3][4];
*/

二维数组在定义的时候, 可以不给出行数, 但必须给出列数,

二维数组的大小根据初始化的行数来定

3、多维数组的定义

int a[3][4][5];

4.数组的初始化

1、一维数组初始化

a、 全部初始化

int a[5]={2,4,7,8,5};
//即:a[0]=2;a[1]=4;a[2]=7;a[3]=8;a[4]=5;

b、 部分初始化

int a[5]={2,4,3};//初始化赋值不够后面补 0
//即:a[0]=2;a[1]=4;a[2]=3;a[3]=0;a[4]=0;

注意: 只能省略后面元素, 可以不初始化, 不能中间的不初始化

2、二维数组初始化

按行初始化:

a、 全部初始化

int a[2][2]={{1,2},{4,5}};
//a[0][0]=1; a[0][1] = 2; 
//a[1][0]=4;a[1][1]=5;

b、 部分初始化

int a[3][3]={{1,2},{1}};
//a[0][0] = 1;a[0][2] =0;  

逐个初始化:

a、全部初始化:

int a [2][3]={2,5,4,2,3,4};
//{{2,5,4},{2,3,4}}

b、部分初始化:

int a[2][3]={3,5,6,8};  
//{{3,5,6},{8,0,0}}

5.数组元素的引用

1、 一维数组元素的引用方法

数组名 [下标]; //下标代表数组元素在数组中的位置

int a[5];
//a[0] a[1] a[2] a[3] a[4];  

2、二维数组元素的引用方法

数组名[行下标] [列下标];

int a [4][5];
/*
a[0][0] ,a[0][1],a[0][2] ,a[0][3] ,a[0][4];
a[1][0] ,a[1][1],a[1][2] ,a[1][3] ,a[1][4];
a[2][0] ,a[2][1],a[2][2] ,a[2][3] ,a[2][4];
a[3][0] ,a[3][1],a[3][2] ,a[3][3] ,a[3][4];
*/

3、字符数组

char c1[] ={‘c’ ,’ ’ ,’ p’ ,’ r’ ,’ o’ ,’ g’ };//占6字节
char c2[] = “c prog” ;//占7字节
//字符串方式赋值比用字符逐个赋值要多占 1个字节,用于存放字符串结束标志‘\0’  

char a[][5] = {
{‘B’ ,’ A’ ,’ S’ ,’ I’ ,’ C’ },
{‘d’ ,’ B’ ,’ A’ ,’ S’ ,’ E’ }
};

char a[][6] = {“hello” ,“world” };

​ 数组 c2 在内存中的实际存放情况为:

在这里插入图片描述

注:'\0’是由 C 编译系统自动加上的

标签:语句,初始化,10,int,笔记,C语言,学习,数组,表达式
From: https://blog.csdn.net/m0_74268116/article/details/144096579

相关文章

  • 11月27日记录(《代码大全》精读笔记)
    《代码大全(第二版)》是SteveMcConnell所著的经典软件开发书籍,其中关于变量和语句的讨论深刻影响了无数程序员的编程实践。以下是对这部分内容的精读体会:变量命名的重要性:变量的命名是编码中最为直观的文档形式。一个好名字能够清晰地传达变量的用途和含义,减少代码的阅读难度。书......
  • 11月阅读笔记
    这里是11月第二篇阅读笔记。前言见上一篇。最近我又读了一部分,特来写一篇笔记:书中在介绍编程的基本概念时,没有使用那些复杂的专业术语,而是用类比的方式来讲解,这种类比的方式让即使没有任何编程基础的人也能快速理解编程的本质。从最基础的编程环境搭建,到简单的代码语句,再到构建......
  • HTML第一阶段学习笔记
    定义HTML超文本标记语言--HyperTextMarkupLanguage标签语法<strong>需要加粗的文字</strong><br>:换行<hr>:平行线HTML基本骨架html:整个页面head:网页头部,存放给浏览器看的代码,例如cssbody:网页主题,存放给用户看的代码,例如图片,文字title:网页标题小tips/......
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-autobatch.py
    autobatch.pyultralytics\utils\autobatch.py目录autobatch.py1.所需的库和模块2.defcheck_train_batch_size(model,imgsz=640,amp=True,batch=-1): 3.defautobatch(model,imgsz=640,fraction=0.60,batch_size=DEFAULT_CFG.batch): 1.所需的库和模块#Ultr......
  • C语言——指针初阶(一)
    目录一.什么是指针???     指针是什么?        指针变量:        总结:        总结:二.指针和指针类型指针+-整数:        总结:指针的解引用总结:三.野指针如何规避野指针往期回顾:一.什么是指针???     指针是什么? ......
  • C语言中对文件的输入输出
    在c中的文件操作通过读的形式,打开文件用FILE打开用FILE*类型的指针接受文件指针的首地址并且我们可以用读或写的方式打开文件使用r来读取文件当然也要判断是否读取文件成功,若读取成功fopen会传出指针,若失败则会传出空指针,所以要判断读取是否成功当然,当文件不存在时使用r会......
  • 笔记 -- 第七章
    第七章类(class)定义抽象数据类型类背后的基本思想:数据抽象(dataabstraction)和封装(encapsulation)。数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程技术。类成员(Member)必须在类的内部声明,不能在其他地方增加成员。成员可以是数据、函数、类型别......
  • JAVA开源毕业设计 历史学习网站 Vue.JS+SpringBoot+MySQL
    本文项目编号T004,文末自助获取源码\color{red}{T004,文末自助获取源码}......
  • 零基础C语言-插入排序
    插入排序插入排序是排序算法当中一种很基础的算法,同时他也我们日常生活当中所见到最多的排序。比如我们在拿扑克牌的时候,所用的排序方法就是将手中刚刚拿到的牌放入一个比前边大后边小的位置,直接插入进去,这就是插入排序。所以我们要对插入排序进行实现我们就要进行代码......
  • C语言实例之10求0-10000中的水仙花数
    1.水仙花数的描述水仙花数(Narcissisticnumber)也被称作自恋数、自幂数等。它是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为13......