///ovo///

在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为:
    表达式1, 表达式2
其求值过程是分别求两个表达式的值,并以表达式2(即最右边的一个表达式)的值作为整个逗号表达式的值。

#include<stdio.h>
int main()
{    
    int i ,a;
    i =(a=2*3, a*5), a+6; 
    printf("%d", i);
    return 0;    
 } 
输出结果:30.

原因分析:

优先级排列中,括号>加减乘除>赋值>逗号。

所以当前这个等式的运算应该是:

step1:a = 2*3;  //结果a=6

step2:计算a*5; //结果是30【注意:此时a的值是不变的,仍旧是6!!!】

step3:i = (a=2*3, a*5);  //得到i值:30.【不去执行a+6的原因在于:因为赋值符号 = 的优先级比逗号的高,所以直接把30赋值给了 i。 】

如果该等式变成了   i=(a=2*3,a*5,a+6);  

则输出结果为12.

step1:a = 2*3;  //结果a=6

step2:计算a*5; //结果是30

step3:计算a+6;//结果是12

step4:将最右边的一个等式a+6的值赋给i
————————————————

比如x+=y实际代表的表达式为:x=x+y。

x*=y代表x=x*y

x/=y代表x=x/y

x-=y代表x=x-y
——————————————————————————————————————————————————-
由双引号串起来的一串字符就是字符串,双引号里面什么都可以写。
字符串的结束标志是一个\0的转义字符。
计算字符串长度的时候不包含\0。
字符是用英文单引号括起来,里面写一个英文字母或者数组。

如何来定义一个字符变量呢,下面就是了

char a;

那如果我想给这个字符变量a赋值,那就应该下面这种方式(单引号括起来,里面只能放一个字符)

a = 'A';
a = '2';
a = 'a';
—————————————————————————

C语言中语句的分类
>表达式语句
>函数调用语句
>控制语句
>复合语句
>空语句

用流程圈来表示程序的流程
>起止框、处理框、判断框、输入/输出框、流程线
—————————————————————————

库函数
用户自定义函数

组成c语言程序的基本单位是函数
—————————————————————————
函数的声明:
返回值类型 函数名称 (函数的参数)

函数的调用

函数的定义
—————————————————————————
const int和const double都是指常变量(可看成常量)

—————————————————————————
格式:

函数首部(函数头)

返回值类型 函数名(类型 形式参数1,类型 形式参教2)


一组语句
return 表达式;

(函数体)
—————————————————————————
函数的调用:转向、传参、执行、返回、继续

函数调用的基本形式

函数名(实际参数表);

eg.
bill= totalCost (number, price) ;

实参与形参之问是单向值传递,也称单向值拷贝。
实参与形参个数、对应数据类型完全一致。
—————————————————————————

当一个函数直接或间接地调用了自身,就成了递归函数。


递归的两个要素:
1.找到递推表达式

2.存在递归终止条件,即回归条件
—————————————————————————

变量的作用域与存储类型 
变量的生命周期
变量的四种存储类型
静态局部变量的特性


变量的生命周期:变量从创建到撤消的这段时间
变量的存储类型:变量如何存储在计算机中,它决定了变量的生命周期

四种存储类型:
自动(auto)
外部(extern)
静态 (static):重点
寄存器 (register)

自动:

^自动体现在:
进入语句块时自动申请内存,退出时自动释放内存

标准定义格式:
auto 类型名 变量名;
例:auto int a
•缺省的存储类型
·局部变量不初始化时,值不确定 (VS2010)
(之前的形式参数变量是自动变量)

静态:

标准定义格式
static 类型名 变量名;
例:static int a=8:
静态变量定义在函数外部
静态全局变量
静态变量定义在函数內部
静态局部变量
程序编译时分配内存地址,开始运行时实际占用内存,直到程序结束时生命期结束。
•程序开始运行时被时初始化(默认为0),以后不再进行初始化。

————————————————————————————————————————————
%d左对齐,输出变量的所有数字;
%4d右对齐,宽度为4,左边填充空格,
当变量的实际宽度大于4时,输出变量的所有数字;
%04d与%4d的唯一区别就是左边填充0。
%-4d意思是数字占四位、左对齐。
```c
比如,
1.以%d,%4d,%04d,输出12时,结果是:
12
两个空格12
0012
2.以%d,%4d,%04d,输出123时,结果是:
123
一个空格123
0123
3.以%d,%4d,%04d,输出1234时,结果是:
1234
1234
1234
4.以%d,%4d,%04d,输出12345时,结果是:
12345
12345
12345

——————————————————————————————————————————————————————————

printf("%f",fVal);//这是浮点默认输出格式,小数点保留6位

printf("%.1f",fVal);//.1是说明,小数点保留1位,对其后的数据进行四舍五入

printf("%.2f",fVal);//.2是说明,小数点保留2位,对其后的数据进行四舍五入,你想保留几位,就用点几

printf("%10f",fVal);//输出宽度为10个字符,右对齐,前补空格,小数点保留6位

printf("%10.2f",fVal);//输出宽度为10个字符,右对齐,前补空格,小数点保留2位

——————————————————————————————————————————————————————————
二、小数计数法

(1)1.23456e+002 ,这个数的表示方式就是,e+002 表示10 的2次方,这里的数就是123.456。
——————————————————————————————————————————————————————
5、打印字符
打印字符类型,用%c表示
例如输入如下代码

char ch='A';
printf("The number of %c% is %d.\n",ch ,ch );
1
2
输出结果
The number of A is 65.
————————————————————————————————————————————————————————————————
一、字符输入函数getchar:
getchar函数是从标准的输入设备(如键盘)上输入一个字符,不带任何参数,格式为:
getchar():
getchar函数将输入的第一个字符作为函数的返回值,通常使用这个函数时,将函数的返回值赋予一个字符变量或者整型变量。

#include <stdio.h> //getchar是C语言的标准库函数
main()
{    char ch;
    ch = getchar();
    printf("%c %d\n",ch,ch);
    printf("%c %d\n",ch-32,ch-32);
    return 0;
}
程序运行时输入 abc。
得到的结果是:

a 97
A 65

--------------------------------
Process exited after 3.084 seconds with return value 0
请按任意键继续. . .

在getchar函数中只把输入的第一个字符作为函数的返回值,所以在代码中输入了abc三个字符,只返回了a的值。
在执行代码时,先以字符的形式输出ch,然后进行数据的强制转换,再将ch以整型的形式输出。字符型数据
向整型数据转换时,实质上是将字符型数据转换成与该字符相对应的十进制ASCII码值。a的ASCII码值是97,
将a转换后就输出了97。A的ASCII值是65,输出的便是65。质上是将字符型数据转换成与该字符相对应的十
进制ASCII码值。a的ASCII码值是97,将a转换后就输出了97。A的ASCII值是65,输出的便是65。

二、字符输出函数putchar:
putchar函数是向标准输出设备(屏幕)上输出一个字符的C语言标准函数,格式为:
putchar(ch);
ch可以是变量、常量,转义字符或表达式。数据类型可以是字符型或整型。当ch是整型数据时,输出的是与其相对应的ASCII码值。

#include <stdio.h>
main()
{   int p;
    char q; //此时定义的是字符变量,不是字符串,所以只能将一个字符的值赋予q
    p=98;
    q='a';
    putchar(p);
    printf("\n");
    putchar(q);
    return 0;
}

执行的结果就是:

b
a

请按任意键继续. . .
————————————————
char a,b,c,d;
    a=getchar();
    b=getchar();
    scanf("%c%c",&c,&d);
    putchar(a);
    putchar(b);
    printf("%c,%c",c,d);

    
    return 0;
————————————————————————————————————————————————————
在printf中,当变量长度比数据格式大时,printf与用"%d"数据格式输入完全相同,即原样输出。

2)数据格式大于变量长度
如printf用 %8d 打印 n ,输出为 (!)(!)(!)12345 。
如printf用 %-8d 打印 n ,输出为 12345(!)(!)(!) 。
如printf用 %8s 打印 arr ,输出为 (!)(!)(!)Hello
如printf用 %-8s 打印 arr ,输出为 Hello(!)(!)(!)
————————————————
"%(数字)d"(或者其他转换字符)此数字在scanf中表示 最大字段宽度 
。意思为,你不能输入字段比此数字还大的。即输入到达最大字段宽度时,
超过宽度后面的将不再作为输入内容(相当于作废),在最大宽度内的为输入内容。
-------------------------------------------------------------
C++中也可以用科学计数法,比如:

0.01 = 1e-2  (注意e前面的那个是数字1)

100 = 1e2
-------------------------------------------------------------
%d整型输出,%ld长整型输出,

%o以八进制数形式输出整数,

%x以十六进制数形式输出整数,

%u以十进制数输出unsigned型数据(无符号数)。

%c用来输出一个字符,

%s用来输出一个字符串,

%f用来输出实数,以小数形式输出,

%e以指数形式输出实数,

%g根据大小自动选f格式或e格式,且不输出无意义的零。
————————————————
      除法运算符“/”。二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。
例如:

5/2=2,1/2=0

5/2.0=2.5   

        求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。求余运算的结果等于两个数相除后的余数。

例如:

5%2=1,1%2=1

5%2.0和5.0%2的结果是语法错误

---------------------------------------------------------------
C语言float和double的区别?

1.精度不一样,float是单精度,double是双精度;

2.表示小数的范围不一样,double能表示的范围比float大;

3.double在内存中,占8个字节,float在内存中,占4个字节。

注:%f默认保留6位小数,不足位以0补齐,超过六位按四舍五入的方法保留6位,若想输出指定位数,
在格式化输出语句中表示变量的字母及%中间的部分控制输出位数,小数点后是小数位数

double 和 float 的区别是 double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,
double 的运算速度比 float 慢得多,能用单精度时不要用双精度(以省内存,加快运算速度)。

------------------------------------------------------------------------
c语言源文件经过编译后,生成文件的后缀是“.obj”。

C语言源文件后缀名是“.c”,编译生成的文件后缀名是“.obj”,连接后可执行文件的后缀名是“.exe”。

C语言创建程序的步骤:

编辑:就是创建和修改C程序的源代码-我们编写的程序称为源代码。

编译:就是将源代码转换为机器语言。编译器的输出结果成为目标代码,存放它们的文件称为目标文件。
扩展名为.o或者.obj。(该部分编译是指汇编器编译汇编语言或者编译器编译高级语言)

链接:链接器将源代码由编译器产生的各种模块组合起来,再从C语言提供的程序库中添加必要的代码模块,
将它们组成一个可执行的文件。在windows下扩展名为.exe,Unix下无扩展名。

执行:运行程序。

C语言源程序经过C语言编译程序编译之后,生成一个后缀为“.obj”的二进制文件(称为目标文件),
最后还要由称为“连接程序”(link)的软件,把此“.obj”文件与c语言提供的各种库函数连接在一起,
生成一个后缀“.exe”的可执行文件。显然C语言不能立即执行。


目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与
库函数连接,才能形成完整的可执行程序。

----------------------------------------------------------------


格式控制说明符:

%d:输入一个十进制整数 
%i:输入一个整数,可以是十进制或 带前缀0的八进制整数 或 带前缀0x的十六进制整数
%o:以八进制形式输入一个整数(带不带前缀都行)
%x:以十六进制 (带不带前缀都行)
%u:输入一个无符号十进制整数
%c:输入一个字符
%s:输入一个字符串
%f:输入单精度实数,小数或指数形式输入
%lf:输入双精度实数
%p:输入一个指针(地址)
————————————————

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值