C语⾔常⻅概念——新手学习框架(2)

1. 数据类型简介与变量

1. 数据类型

1.字符型  

char //character 

[signed] char //有符号的

unsigned char //⽆符号的

2.//整型

int

[signed] int

unsigned int

//短整型                                                        

short [int]                                                     

[signed] short [int]                                                                 

unsigned short [int]                     

   //⻓整型

 long [int]

 [signed] long [int] 

unsigned long [int]

3.浮点型

float  //单精度浮点型   

double   双精度浮点型

long double   复合型数据类型

在 C99 中也引⼊了 布尔类型 ,是专门表示真假的_Bool 的使用需包含头文件 <stdbool.h>,布尔类型变量的取值是: true 或者 false .如:flag为真,下列代码输出 " hello world "。

2. 变量

1. 变量的创建

了解清楚了类型,我们要知道类型是⽤来创建变量的。 C语言中把经常变化的值称为变量,不变的值称为常量,如直接出现在源代码中的值: 

整形常量:1,3,5 ;   浮点常量:3.14,2.15 ;   字符常量:'A' , 'b' 等,也可以是 const 关键字定义的常量,常量一旦定义就不可被修改。

变量创建的语法形式是这样的

     

如:int age      / /整形

char  name      / /字符型

double weight  / /浮点型

初始化 :初始化变量在创建的时候就给⼀个初始值,就叫初始化 如:

int age = 18; 

char ch = 'w';

double weight = 48.0;

在定义变量时,建议同时初始化变量,可以避免不少潜在性的问题。

2. 变量的分类

根据作用域的不同,可以将变量分为全局变量和局部变量。

全局变量:在大括号外部定义的变量就是全局变量 全局变量的使用范围更广,整个工程中想使用,都是有办法使用的

局部变量:在大括号内部定义的变量就是局部变量 局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的

其实当局部变量和全局变量同名的时候,局部变量优先使⽤。这里 printf 打印的数值是20。

 

⼀般我们在学习C/C++语言的时候,我们会关注 内存中的三个区域:栈区、堆区、静态区

1. 局部变量是放在内存的栈区

2. 全局变量是放在内存的静态区

3. 堆区是用来动态内存管理的

2. sizeof, strlen 和 数据类型长度

1.sizeof

sizeof 是⼀个关键字,也是操作符,专门是⽤来计算sizeof的操作符数的类型才度的,单位是字 节。 sizeof 操作符的操作数可以是类型,也可是变量或者表达式。计算结果是 size_t 类型

size_t = sizeof( 类型 )

size_t  = sizeof (表达式)    / /表达式的括号可省略

sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。(进行编译的时候,就根据表达式的类型确定了

2. 各种数据类型的长度

每⼀种数据类型都有自己的长度,使用不同的数据类型,能够创建出⻓度不同的变量,变量长度的不 同,存储的数据范围就有所差异。

sizeof 可以算出各个数据类型的字节大小,了解不同类型的大小,在书写代码时能对变量进行更合适的定义,减少内存空间的浪费。

3.strlen

在C语言中,' strlen ' 函数是 C 标准库函数之一,它用于计算以空字符 (' \0 ') 结尾的字符串的长度。空字符是 C 语言中字符串的结束标志,但不包括在字符串的实际长度内。使用 strlen 需包含头文件 <string.h> ,返回值类型为 size_t 。

使用 strlen 要注意以下点:

1. strlen  函数只计算到第一个空字符,如果字符串中间包含空字符,它将只计算到第一个空字符之前的部分。

2.使用 strlen 计算数组中都字符长度时,需确保数组中有元素 \0 结尾,否者计算完数组中的字符长度后,会继续向后计算随机值,知道遇到 \0。

3.strlen 函数的返回值不包括空字符,所以如果你想知道字符串可以存储多少字符(包括空字符),你应该在 strlen 的结果上加 1。

3.算术操作符:+、-、*、/、%

1.+、-、*、/、%的注意点

 1. 加 减 乘 除的运算是我们在熟悉不过的了,这里主要注意 ' * '(乘)和  '/ '在打印输出的细节。如:

 

上面示例中,尽管变量 x 的类型是 float (浮点数),但是 6 / 4 得到的结果是 1.0 ,而不是 1.5 。原因就在于 C语言 里面的整数除法是整除,只会返回整数部分,丢弃小数部分。如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,比如将 6 改为 6.0 这时 C语言就会进行浮点数除法。

又如:

上面的代码会得到0,这是因为 score / 20 是整除,会得到⼀个整数值 0 ,所以乘以 100 后得到的也是 0 。 为了得到预想的结果,可以将除数 20 改成 20.0 ,让整除变成浮点数除法。

2. 运算符 % 表示求模(余)运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。

负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值