目录
一.第一个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语言注释风格,缺点是不呢个嵌套注释)