初识C语言

184 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

一.第一个C语言程序

二.数据类型

三.变量、常量

四.字符串+转义字符+注释

一.第一个C语言程序 #include <stdio.h> int main() { printf("hello world\n");

return 0;

}

解释:

//main函数是程序的入口

//一个工程中有且仅有一个main函数

二.数据类型 char //字符数据类型 1字节

short //短整型 2字节

int //整形 4字节

long //长整型 4字节

long long //更长的整形 8字节

float //单精度浮点数 4字节

double //双精度浮点数 8字节

1字节=8个比特位

1byte = 8bit

如何计算每种类型的大小呢?

sizeof-关键字-操作符-计算类型或变量所占空间的大小

#include <stdio.h> int main() { printf("%d\n", sizeof(char)); printf("%d\n", sizeof(short)); printf("%d\n", sizeof(int)); printf("%d\n", sizeof(long)); printf("%d\n", sizeof(long long)); printf("%d\n", sizeof(float)); printf("%d\n", sizeof(double)); printf("%d\n", sizeof(long double)); return 0; } 注:%d-整型

   %f -float

   %lf-double

三.变量、常量 所谓变量就是变化的,所谓常量就是不变的值

1.定义变量的方法: char ch = 'w';

int weight = 120;

int age = 20;

2.变量分两种:局部变量:在{}外的变量 全局变量:在{}内的变量 #include <stdio.h> int global = 2019;//全局变量 int main() { int local = 2018;//局部变量 //下面定义的global会不会有问题? int global = 2020;//局部变量 printf("global = %d\n", global); return 0; } 运行的结果如下

由此可见:上面的局部变量globe没有问题,并且当局部变量和全局变量名字冲突时,局部优先。

3.那么变量如何使用呢?如下是一个 两数相加的例子 #include <stdio.h> int main() { int num1 = 0; int num2 = 0; int sum = 0; printf("输入两个操作数:>"); scanf("%d %d", &num1, &num2); sum = num1 + num2; printf("sum = %d\n", sum); return 0; } 顺便介绍

scanf函数是输入函数

printf函数是输入函数

解决scanf的warning问题;不建议scanf_s,建议在第一行加上

#define _CRT_SECURE_NO_WARNINGS

4.变量的作用域和生命周期: 作用域​​​​​

局部变量的作用域是变量所在的局部范围
全局变量的作用域是整个工程                        

生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。 全局变量的生命周期是:整个程序的生命周期。
5.常量 C语言中的常量分为以下以下几种:

字面常量 const 修饰的常变量 #define 定义的标识符常量 枚举常量

#include <stdio.h> //举例 enum Sex { MALE, FEMALE, SECRET }; //括号中的MALE,FEMALE,SECRET是枚举常量 int main() { //字面常量演示 3.14;//字面常量 1000;//字面常量

//const 修饰的常变量
const float pai = 3.14f;   //这里的pai是const修饰的常变量
pai = 5.14;//是不能直接修改的!

//#define的标识符常量 演示

#define MAX 100 printf("max = %d\n", MAX);

//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1return 0;

}

注: 上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。
四.字符串+转义字符+注释
1.字符串 用双引号括起来的,字符是用单引号

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容

字符串要放到数组中存放 ,\0是打印结束的标志

2.转义字符

出现以上情况的原因就是转义字符

转义字符 释义

? 在书写连续多个问号时使用,防止他们被解析成三字母词

' 用于表示字符常量 '

\“ 用于表示一个字符串内部的双引号

\ 用于表示一个反斜杠,防止它被解释为一个转义序列符。

\a 警告字符,蜂鸣

\b 退格符

\f 进纸符

\n 换行

\r 回车

\t 水平制表符

\v 垂直制表符

\ddd ddd表示1~3个八进制的数字。 如: \130 X

\xdd dd表示2个十六进制数字。 如: \x30 0

#include <stdio.h> int main() { //问题1:在屏幕上打印一个单引号',怎么做? //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做? printf("%c\n", '''); printf("%s\n", """); return 0; } 下面一个例题

//程序输出什么? #include <stdio.h> int main() { printf("%d\n", strlen("abcdef")); // \62被解析成一个转义字符 printf("%d\n", strlen("c:\test\628\test.c")); return 0; } 如图

3.注释

(1)//xxxxx (c++注释风格,可注释一行或多行)

(2)/xxxx/ (C语言注释风格,缺点是不呢个嵌套注释)