本文已参与「新人创作礼」活动,一起开启掘金创作之路
一.第一个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开始,依次向下递增1的
return 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语言注释风格,缺点是不呢个嵌套注释)