C语言教程(一)——输出、数据类型、表达式、条件判断、循环

一个C语言程序必须包含以下代码:

int main(void){
    return 0;
}

这是整个C语言程序的入口

输出

输入以下代码并运行(注意分号):

#include <stdio.h>

int main(void){
    printf("Hello World\n");
    return 0;
}

可以看到,控制台上会显示:

Hello World

这就证明你的程序写对了。

为什么会显示这个信息呢,因为我们在程序中写了这个代码:

printf("Hello World\n");

表示打印Hello World到显示屏上。注意,\n表示换行符。

另外,如果要使用printf,需要在代码的最顶上写:

#include <stdio.h>

输出整数

我们可以用如下代码输出整数1:

#include <stdio.h>

int main(void){
    printf("%d\n", 1);
    return 0;
}

这段代码将会成功输出整数1.

数据类型

在C语言中,数据都有它的类型。数据会存储在进程的地址空间中,而数据类型就规定了访问这些数据的规则。

我们可以使用()运算符强行转换数据类型:

#include <stdio.h>

int main(void){
    printf("%d\n", (int)1.12);
    return 0;
}

输出:

1

这是因为,我们规定了1.12这个数应遵循int(整数)类型的访问规则,因此它的输出为1.

常用的数据类型有如下几个:

int:整数,占4个字节

short:短整数,占2个字节

char:字符,占1个字节

变量

有些时候程序需要使用一些变量,变量的定义方法如下:

[数据类型] [变量名];

或者可以设定初始值:

[数据类型] [变量名] = [初始值];

定义完成后,我们可以使用=对变量进行赋值:

#include <stdio.h>

int main(void){
    int var = 0;
    var = var + 1;
    var = var + 1;
    printf("%d\n", var);
    return 0;
}

其中,我们用+号获得变量加上指定数的结果,并赋值给var,输出:

2

因为var初始值为0,被加了两次

指针

指针也是一种数据类型,表示地址。因此,在访问指针类型的变量时,会将它当成一个地址来处理。这个地址可能是一个其他变量的地址。

我们可以通过&运算符获得变量的地址:

#include <stdio.h>

int main(void){
    int var = 0;
    printf("%p\n", &var);
    return 0;
}

输出:

0000002f371ff7dc

一个指针变量需要被这么定义:

[访问地址内容的数据类型] *[变量名];

也可以设置初始值:

[访问地址内容的数据类型] *[变量名] = [初始值];

访问一个指针变量存储的地址时,需要使用*运算符:

#include <stdio.h>

int main(void){
    int var = 0;
    int *p = &var;
    printf("%d\n", *p);
    return 0;
}

 表达式

C语言中,有许多表达式,如加减乘除,取地址,判断真假等:

加减乘除

两数相加用+运算符,相减用-运算符,相乘用*运算符,相除用/运算符:

#include <stdio.h>

int main(void){
    printf("%d\n", 1+1);
    printf("%d\n", 1-1);
    printf("%d\n", 1*1);
    printf("%d\n", 1/1);
    return 0;
}

以上代码分别输出了1+1,1-1,1×1,1÷1的结果:

2
0
1
1

判断真假

==为等于运算符,!=为不等于运算符,!为非运算符。如果结果真结果为非0,假结果为0:

#include <stdio.h>

int main(void){
    printf("%d\n", 1==1);
    printf("%d\n", 1!=1);
    printf("%d\n", !(1==1));
    return 0;
}

以上代码分别判断1是否等于1、1是否不等于1、1是否等于1的否定,输出:

1
0
0

 我们也可以用大于号和小于号表示大于小于的判断:

#include <stdio.h>

int main(void){
    printf("%d\n", 1>1);
    printf("%d\n", 1<1);
    printf("%d\n", 1>=1);
    printf("%d\n", 1<=1);
    return 0;
}

这段代码将分别输出1是否大于1,1是否小于1,1是否大于等于1,1是否小于等于1:

0
0
1
1

 

三目运算符

C语言中,三目运算符可以根据一个条件的真假,得出特定的结果,如:

#include <stdio.h>

int main(void){
    printf("%d\n", (1==1)?10:20);
    return 0;
}

表示,如果1等于1,那么输出10,否则输出20

逻辑与和逻辑或

逻辑与的结果取决于其并列的两个表达式的真假,只有都为真才是真。

逻辑或只需要有一个为真:

#include <stdio.h>

int main(void){
    printf("%d\n", 1==1 && 1==2);
    printf("%d\n", 1==1 || 1==2);
    return 0;
}

这段代码将分别输出1等于1与1等于2的逻辑与和逻辑或,因此输出如下:

0
1

运算符优先级

运算符具有其优先级,如先算乘除后算加减。我们可以使用小括号是一个运算的优先级最高,如:

3 + 2 * 4

会先算2*4,最后在算3+8。而如果我们加上括号:

(3 + 2) * 4

就会先算3+2,后算5*4了 

变量运算

运算符也可以操作变量,如:

#include <stdio.h>

int main(void){
    int var = 0;
    printf("%d\n", var == 0);
    printf("%d\n", (var + 1) == 0);
    return 0;
}

输出:

1
0

条件判断

条件判断可以使用if关键字实现:

if(表达式){
    表达式为真后执行的代码
}

如:

#include <stdio.h>

int main(void){
    if(1==1){
        printf("1==1\n");
    }
    return 0;
}

输出:

1==1

我们也可以对设置表达式为假后执行的代码:

if(表达式){
    表达式为真后执行的代码
}else{
    表达式为假后执行的代码
}

如:

#include <stdio.h>

int main(void){
    if(1==2){
        printf("1==2\n");
    } else{
        printf("1!=2\n");
    }
    return 0;
}

 输出:

1!=2

当然,我们也可以设置否则如果,也就是表达式为假后,再判断另一表达式是否为真:

if(表达式1){
    表达式1为真后执行的代码
}else if(表达式2){
    表达式2为真后执行的代码
}else if...
}else{    (可选)
    表达式都为假后执行的代码
}

如: 

#include <stdio.h>

int main(void){
    int age=18;
    if(age < 8){
        printf("1\n");
    } else if (age < 16){
        printf("2\n");
    } else if (age < 18){
        printf("3\n");
    } else{
        printf("4\n");
    }
    return 0;
}

输出:

4

我们将age改成7,输出:

1

循环

C语言中,循环分为while循环和for循环:

while循环

while循环的写法如下:

while (表达式){
    表达式为真后执行的代码
}

如果表达式为真,则会循环,直到表达式为假。如果表达式为假,则会跳出循环,如:

#include <stdio.h>

int main(void){
    int count = 0;
    while (count < 10){
        printf("%d\n", count);
        count++;
    }
    return 0;
}

 count++表示将count变量自己增加1,因此,程序将会输出:

0
1
2
3
4
5
6
7
8
9

for循环

for循环的写法如下(注意分号):

for(表达式1;表达式2;表达式3){
    表达式2为真后执行的代码
}

for循环中,表达式1是进入循环前要执行的语句(只执行1次),表达式3是每次循环结束后要执行的语句。同样的,for循环也是循环直到表达式2为假。

前面的代码可以改写为:

#include <stdio.h>

int main(void){
    int count;
    for (count = 0; count < 10; count++){
        printf("%d\n", count);
    }
    return 0;
}

输出:

0
1
2
3
4
5
6
7
8
9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值