C语言 基础笔记

程序框架

#include <stdio.h>
int main()
{
    //....
    return 0;
}

变量
变量名由字母、数字、下划线构成,并且数字不能作为开头。
C99允许在程序的任何地方定义变量 、ANSIC只能在开头定义变量

int a = 0;//初始化
int c,d;//一行定义多个变量
int e = 0,f = 0;//一行里给多个变量初始化

常量
C99 使用关键字const ,可以赋初值,但不能被修改。

const int PRICE = 100;

输出整数

printf("1+4=%d",1+4);//1+4=5
printf("%d+%d=%d",1,4,1+4);//1+4=5

输入(满足格式字符串的内容,按下回车才会输进去)

scanf("%d",&price);
scanf("%d %d",&a,&b);
scanf("%d,%d",&a,&b);

如果中间是一个逗号,那么scanf首先要读到一个整数,然后读到一个逗号,最后再读到一个整数。读到这些的顺序不一定是连续的,但必须逐步满足每一个。

scanf("%d,%d ",&a,&b);

除法运算
①C语言当中,双目运算符“\”左右如果都是int型,那么运算结果,只保留整数部分,小数点后的结果直接被抹去。
②浮点数的输入使用%lf

double a;
scanf("%lf",&a;

运算符的优先级
优先级排在前面的高,比如优先级为1的要比优先级为2的要高。处在同一个优先级的,他们的运算从左到右进行,除了优先级为4的赋值。
【优先级 1 】 + - (单目运算符)
这个的单目运算符+ -意思类似于数学中的正号和符号,而不是加号和减号
例子:a*+b
【优先级 2 】 * / % 分别是乘、除和取余
【优先级 3】 + - 分别是加、减
【优先级 4】 = 赋值
赋值的运算是自右向左进行的,而平常我们x=1+2+3是自左向右进行的,这种情况下相当于x=(1+2)+3。而如果写成x=1=2,按照自右向左的规格,x=(1=2),x的结果应当是(1=2)的结果。
代码风格
其实这个对代码编译后运行出结果没多大的影响,只是如果没有好的代码风格,日后解决问题的效率会变低,就算是自己写的程序也会没有耐心读下去。初学还是养成好习惯吧。
①C语言当中多用次行风格,像这样

int main()
{

}

②等号两边会有空格

int a = 1;//有空格的
int a=1;//没有空格

③不提倡的赋值(嵌入式赋值)

int a=6;
int b;
int c = 1 +(b=a);

看到网上的一个例子,这样表达居然是正确的,很奇特。
第三行做的事情是把a的值赋值给b,然后把1和b相加,赋值给c。但是举例的人提到这样不利于阅读,容易产生错误。
在我原先的理解里,认为b=a,就像一个表达式一样,所以,这样写数字1就不知道和什么相加,所以是错误的。了解原因才知道,这是因为在C语言中,赋值也是运算符,像加号之类的。

int c = 1 + (b + a);
int c = 1 + (b = a);//他们都是运算符,这样就好理解,为什么这一行是对的了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值