Note:这是入门篇记录,主要是梳理一些基本的c语言基础知识。
首先提出一个问题:我们为什么要学c?这个问题没有答案,这是一道仁者见仁、智者见智的问题,没有所谓的标准答案,但是当你已经阅读到了这里,我相信你的心里已经有答案了。
编译与解释:
编译:借助一个程序,就像翻译一样,首先将你的程序翻译成计算机能懂的语言-机器语言,然后去执 行机器语言
解释:借助一个程序,通过那个程序理解你所编写的语言,然后按照你的要求去执行
C的不同版本(history):(1973.3)
FORTRAN===>BCPL===>B===>C
K&C===>ANSI C===>C89===>C95===>C99===>C11
Hello World
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
Linux下终端编译C命令:
gcc hello.c
./a.out
C基础知识:
1.变量
def-<类型名称><变量名称>
2.C的保留字
void | break | int | char | const | continue |
---|---|---|---|---|---|
default | do | double | else | enum | extern |
float | for | goto | if | case | long |
register | return | short | signed | sizeof | static |
struct | switch | typedef | union | unsigned | auto |
volatile | while | inline | restrict |
3.变量的初始化
–建议在使用变量之前对变量初始化一次!
4.常量
const int MOUNT = 100;
int price=0;
printf("请输入金额:");
scanf("%d",&price);
int change=MOUNT - price;
printf("找您%d元\n",change);
5.数据类型
printf("请分别输入身高的英尺和英寸,用空格隔开:");
double foot;
double inch;
scanf("%lf %lf",&foot,&inch);
printf("身高为%f米\n",((foot+inch / 12)*0.3048));
6.运算符优先级-operator
优先级 | 运算符 | 运算 | 结合关系 |
---|---|---|---|
1 | + | 单目不变 | 自右向左 |
1 | - | 单目取负 | 自右向左 |
2 | * | 乘 | 自左向右 |
2 | / | 除 | 自左向右 |
2 | % | 取余 | 自左向右 |
3 | + | 加 | 自左向右 |
3 | - | 减 | 自左向右 |
4 | = | 赋值 | 自右向左 |
7.交换两个变量的值
int a=10;
int b=5;
int t;
t=a;
a=b;
b=t;
printf("%d %d",a,b);
8.复合赋值,递增递减运算符
int total += a+b;//int total = (a+b)+total;
count++;//==count += 1
a++;//a加1之前的值
++a;//a加了1之后的值
//example:
int a=10;
printf("a=%d\n",a);
printf("a++=%d\n",a++);
printf("a=%d\n",a);
printf("++a=%d\n",++a);
printf("a=%d\n",a);
//example.output:
a=10
a++=10//此时会输出原来的值,但会使现在的值加1
a=11
++a=12//此时会直接输出加1后的结果
a=12