c#笔记总结

一 ,数据的变现形式
在计算机高级语言中,数据有两种表现形式:常量和变量。

    1.1常量
1.1.1常用的常量有以下几类:
整型常量:
实型常量:有两种表示形式
字符常量:有两种形式的字符常量
字符串常量:如”ABC”、”123”等。
符号常量:用#define指令指定用一个符号代表一个常量。
地址常量:每一个变量、数组等的地址在程序运行期间是不能够改变的,称为地址常量。
   1.2变量
变量就是在程序运行中,值可以改变的量。
标识符命名规则:只能由字母、数字、下划线’_’,$组成,并且只能由字母和下划线开头。
  1.3数据类型 

byte short long char boolean float double string

  1.4格式化输入输出函数
%d    十进制
%o    八进制
%x    十六进制
%u    无符号十进制
%c    单个字
%s    字符串
%f    单精度
%lf    双精度
%e    科学计数法
‘*’符:表示输入项读入后不赋予相应的变量,跳过此值。
如:scanf(“%d %*d %d”,&a,&b);输入1 2 3,则a=1,2被跳过,b=3。
‘#’符:对%c,s,d,u输出无影响,对于%o,x来说,输出前缀符o,0x
scanf函数中double型数据需要使用%lf才能正常得到所输入的值,而输出可以%f输出。
二, 运算符和表达式
    2.1基本的算术运算符
       2.2.1自增、自减运算符(单目运算符)
       ++(自增运算符)、–(自减运算符)
++i;--i;(在使用i之前,先使i的值加(减)1,先加减后使用)
i++;i--;(在使用i之后,使i的值加(减)1,先使用后加减)

  2.2.2运算符优先级
     2.2表达式
表达式语句
表达式语句是由一个表达式加一个分号构成,
例如:a=3是赋值表达式,而a=3;是赋值语句。
控制语句
控制语句用于完成一定的控制功能。
①if()…else…        (条件语句)
②for()....        (循环语句)
③while()…        (循环语句)
④do…while();    (循环语句)
⑤break            (结束整个循环语句)
⑥continue        (结束本次循环语句)
⑦switch            (多分支选择语句)
⑧return            (函数返回语句)

函数调用语句
空语句
复合语句
三, 选择结构和循环结构
3.1 选择结构
C语言提供了两种选择结构:if语句和switch语句。

3.1.1if语句
If语句的一般形式:

根据if语句的一般形式,可以写成不同的形式,最常用的有以下三种形式:
(1)if(表达式)语句1;    //单独的一个if语句,用于实现两个分支的判断选择

(2)if(表达式)语句1;    //if和else组合,用于实现两个分支的判断选择
else 语句2;

(3)if(表达式)语句1;    //if else嵌套,用于实现多分支结构
else if(表达式)语句2;    //if和else的配对问题,就近原则
else if(表达式)语句3;    //else和前面最近的没有配对的if配对
else语句4;……

3.1.2switch语句
switch语句的一般形式:

switch()
{
case 常量1:语句1;
case 常量2:语句2;
case 常量3:语句3;
case 常量4:语句4;
case 常量5:语句5;
……
case 常量n:语句n;
default:语句n+1;
}

3.2循环结构
3.2.1循环结构的分类
当型循环
当循环条件满足时才执行循环体中的语句。
①for循环
for循环的一般格式为:
for(表达式1;表达式2;表达式3)
{
循环体;
}

for(int a=0;a<10;a++)
printf(“a=%d\t”,a);

②while循环
while循环的一般格式为:
while(表达式)
{
循环体;
}


直到型循环
直到条件不满足时才结束循环。
do  while循环
do  while循环的一般格式:
do
{
循环体;
}while(表达式);

四, 数组
4.1,什么是数组
数组是一组有序数据的集合。
数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。

用一个数组名和下标来唯一地标识确定数组中的元素。

数组中的每一个元素都是属于同一数据类型。
规定不能把不同数据类型的数据放在同一个数组中。

4.2一维数组的定义和引用
定义一维数组
基本格式:数据类型 数组名[数组大小];

使用数组及引用数组元素
基本格式:数组名[下标];

注意: 在定义数组时,需要指定数组中元素的个数,也就是数组的大小

一维数组的初始化
可以用“初始化列表”方法实现数组的初始化。
如:int a[10]={0,1,2,3,4,5,6,7,8,9};
也可以只给数组的部分元素赋初值。

4.3二维数组
定义二维数组
基本格式:数据类型 数组名[数组行数][数组列数];
如:int a[3][4];
此二维数组有3行4列
1
2
3
二维数组的内存:行数*列数*单个元素类型所占字节数
1
二维数组的初始化
(1)给全部元素赋值:
int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
//定义一个3行4列的二维数组,并给它的元素初始化赋值
int arr[3][4]={};//全部赋值为0
int arr[3][4]={0};//全部赋值为0
1
2
3
4
(2)给每一行元素赋值:
int arr[3][4]={{1,2,3,4},
{1,2,3,4},
{1,2,3,4}
};

(3)给部分元素赋值:
//可以不指定数组行大小
int arr[][3]={1,2};
//给数组前两个元素赋值,数组行数为1,此行最后一个元素默认为0
int arr[][3]={1,2,3,4};
//给数组前四个元素赋值,数组行数为2,第二行最后两个元素默认为0
int arr[][3]={{1,2},{3,4}};
//给数组每行的前两个元素赋值,数组行数为2,每行最后一个元素默认为0

二维数组元素的访问
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
a[0][0];    //访问数组第1行第1个元素
a[1][0];    //访问数组第2行第1个元素
a[2][1];    //访问数组第3行2个元素

4.4字符数组
字符数据简单的来说就是char类型的数组。

字符数组的定义及初始化
//定义一个字符数组c,并以单个字符初始化赋值

引用字符数组中的元素
如:char s[10]; //定义一个字符数组
s[0]=’a’;    //引用字符数组s的第一个元素s[0]并赋值
s[1]=’b’;    //引用字符数组s的第二个元素s[1]并赋值

字符数组的输出
如有定义以下字符数组:
char s[7]=”abcdefg”;
方法一:以%c的格式循环输出
for(int i=0;i<7;i++)
{
printf(“%c”,a[i]);
}
方法二:以%s的格式输出
printf(“%s”,a);
字符串处理函数
包含头文件#include<stdio.h>

puts(字符数组);    //输出字符串
gets(字符数组);    //输入字符串
strlen(字符串)    //测字符串长度函数
strcat(字符数组1,字符数组2);    //字符串连接函数
strcpy(字符数组1,字符数组2);    //字符串复制函数
strcmp(字符串1,字符串2);    //字符串比较函数
五, 函数
5.1什么是函数
从本质意义上来说明函数就是用来完成一定功能的,是把实现功能的代码封装起来,给这些封装起来的代码取个名字就是函数名。

5.2函数的定义,
在程序中用到的所有函数,必须“先定义,后使用”。

定义无参无返回值函数
类型名 函数名()
{
函数体
}

类型名 函数名(void)
{
函数体
}
在函数体里描述函数实现的功能。

定义有参数无返回值函数
void 函数名(函数参数1,函数参数2,……)
{
函数体
}
void max(int x,int y)
{
int z;
z=x>y?x:y;
printf(“%d\n”,,z);
}
//求最大值函数,输出两个数之间的最大值

定义有参数有返回值函数
类型名 函数名(函数参数1,函数参数2,……)
{
函数体
return ;
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
//求最大值函数,返回两个数之间的最大值

定义无参数有返回值函数
类型名 函数名()
{
函数体
return ;
}
void为空类型

5.3函数的调用
1,函数调用的基本格式:函数名(实参列表);
2,函数参数,

函数的参数分为实参和形参。
在调函数时,我们将调用其他函数的函数称为主调函数,将被调用的函数称为被调函数。在调用有参函数时,主调函数和被调函数之间有数据传递关系。主调函数中将值传递出去的参数称为“实际参数”(简称实参),被调函数中用于接收主调函数所传递过来值的参数称为“形式参数”或“虚拟参数”(简称形参)。

3,实参和形参之间的数据传递

在调用函数的过程中,系统会把实参的值传递给被调函数的形参,或者说形参从实参得到一个值。
    注意:
(1)实参可以是常量、变量或表达式
(2)实参与形参的数据类型应相同或者赋值兼容,并且实参在实参列表中的位置与形参在形参列表中的位置必须对应。
(3)函数遇到return返回语句返回过后,不再继续执行return之后的语句了。
(4)形参在其所在函数的调用期间有效,可以参加此函数中的运算,但是不能用于其他函数中。
(5)函数的形参和实参是两个不同的变量,所以,一般情况下形参值的改变不影响实参的值,除非在函数参数的传递类型为引用传递(地址传递)。在未调用函数时,形参并不占用存储单元,开始函数调用时,才给形参开辟存储空间,函数调用结束后,形参的存储单元就会被释放。
函数的返回值
5.4函数的声明
在一个函数中调用另一个函数(即被调函数)需要具备以下条件:
(1)首先被调用函数必须是已经定义好的函数(库函数或自定义的函数)。
(2)如果使用库函数,应该在本文件开头用#include指令将调用相关库函数时所需用到的信息“包含”到本文件中来。如:#include<stdio.h>。
(3)如果使用用户自定义的函数,在调用函数之前必须要有被调函数相关的声明语句,也就是函数需要先声明后使用。

注意:函数声明语句的一般格式:
函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,……,参数类型n 参数名n);

5.5 局部变量和全局变量
局部变量
局部变量的作用范围只在一定范围内有效
局部变量的定义可能有以下几种情况:
(1)在函数开头定义;
(2)在函数内部的复合语句中定义;
全局变量
全局变量的作用范围相对于局部变量来说更为广泛,其在函数外部定义,也称为外部变量
 




 


 


 


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值