C语言初阶
数据类型(数据的长度与范围)
char //字符数据类型 字符长度1 范围(-128~127)
short //短整型 字符长度2 范围(- 32768 ~ 32767 )
int //整形 字符长度4 范围(-21 4748 3648 ~ 21 4748 3647 (21*10^8))
long //长整型 字符长度4 范围(-21 4748 3648 ~ 21 4748 3647 (21*10^8))
long long //更长的整形 字符长度8 范围(-922 3372 0368 5477 5808 ~ 922 3372 0368 5477 5807 (922*10^16))
float //单精度浮点数 字符长度4 范围(-2147483648, 2147483647)
double //双精度浮点数 字符长度8 范围(-1.7E-308~1.7E+308)
- 如何使用C语言算出数据类型的长度呢?
#include <stdio.h>
int main(){
printf(“%d\n”,sizeof(char));
printf(“%d\n”,sizeof(int));
}
这样即可知道每个数据类型的大小
- 如何正确使用每个数据类型进行输出呢?
#include <stdio.h>
int main(){
char a='a';
printf("%c",a);
short b=1000;
printf("%hd",b);
int c=10000;
printf("%d",c);
long d=100000;
printf("%ld",d);
long long e=1000000;
printf("%lld",e);
float f=1.0;
printf("%f",f);
double g=1.00;
printf("%lf",g);
}
以上列出了一些常用的数据类型输出的格式
常量和变量
生活中有些值是不变的(比如:性别,圆周率,血型,等等)
有些值是可变的(比如你的体重,年龄,薪资等等)
在C语言中不变的值叫常量,可变的值用变量来表示。
定义变量和常量的方法
int age =150;
float weight=45.5f;
char ch='w';
变量的分类
- 全局变量
- 局部变量
全局变量在开头进行定义和赋值
局部变量在函数内进行定义和赋值
- 全局变量与局部变量遵循局部优先原则
#include <stdio.h>
int a=123;//全局变量
int main(){
int b=12;局部变量
int a =1;
printf("%d",a);//打印a的值 局部优先故值为1
}
变量的作用域和生命周期
作用域
作用域,程序设计概念,通常来说,一段程序代码中所用到的名字并不是都有效的,而限定这个名字的可用性的代码范围就是这个名字的作用域。(与数学中的定义域类似)
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期是:整个程序的生命周期。
- 注意:全局变量使用起来方便,但为了防止冲突和安全性,尽量避免定义全局变量。
常量
C语言中的常量和变量的定义的形式有所差异
C语言中的常量分为以下几种:
- 字面常量
- const修饰的常变量
- #define 定义的标识符常量
- 枚举常量
#include <stdio.h>
int main(){
3.14;//字面常量
1000;//字面常量
const float pai= 3.14f; //const修饰的常变量
pai=5.14;//? const 修饰的常量是不可变的
#define MAX 100 //#define的标识符常量
return 0;
}
字符串与字符数组+转义字符+注释
字符串
“hello world.\n”
这种由双引号引起来的一串字符串称为字符串字面值,或者简称字符串。
注:字符串的结束标志是一个\0
的转义字符。在计算字符串长度的时候\0
是结束标志,不算做字符串的内容。
字符数组
char arr[]={'h','e','l'};
字符数组类似与上面的形式,字符数组实际上是一系列字符的集合,也就是字符串(String)。在 C 语言中,没有专门的字符串变量,没有 string 类型,通常就用一个字符数组来存放一个字符串。
- 符数组最后不会像字符串一样后面加\0作为结束的标志,这就会导致在打印字符数组时候输出的错误
#include <stdio.h>
int main()
{
char arr1[] = "Heo";
char arr2[] = { 'H', 'e', 'o' };
char arr3[] = { 'H', 'e', 'o','\0' };
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
运行情况:
转义字符
什么叫转义字符?转义字符顾名思义就是转变意思。 例如:我们在屏幕中要打印一个目录:c:\code\test.c
可实际的运行结果是:
在调试过程中实际的运行结果与我们所想表达的不和,这就是转义字符在作妖了~
下面就是一些常见的转义字符了
转义字符 | 解释意思 |
---|---|
? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\’ | 用于表示字符常量’ |
\" | 用于表示一个字符串内部的双引号 |
\\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符。 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。 如: \130 X |
\xdd | dd表示2个十六进制数字。 如: \x30 0 |