C生万物之数据类型及变量与符号<二>

这篇具有很好参考价值的文章主要介绍了C生万物之数据类型及变量与符号<二>。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

万水千山总是情,点点关注行不行。
一声朋友一生情,点点关注才能行!

1.数据类型介绍

C语言提供了丰富的数据类型来记录描述现实的数据。我们通常使用整型描述整数;浮点型描述小数;字符型描述字符;编译器只有知道数据的类型才知道怎么操作,这也是我们经常说的学好编程,就要体会计算机是如何思考的。#

1.1内置类型

1.1.1字符型:

#include<stdio.h>
 int main()
 {
 char a = "x" ;//用char来声明字符变量
 //当然还细分两种,有符号型和无符号型
 //[signed] char  有符号型
 //unsigned char  无符号型
 return 0 ;
 }

1.1.2整型:

#include<stdio.h>
 int main()
 {
 int a = 0 ;//用int来声明整型变量
 //当然还细分两种,有符号型和无符号型
 [signed] int = -10 ; // 有符号型,数据能容纳的范围是有大小的。
 unsigned int = 10;  //无符号型,虽然不能表示负数,但是能表示的正整数范围大了一倍
 short[int] = 1 ; //范围比int更小的整形变量,也分有符号型和无符号型,与上面类似
 long[int] = 654987;
  //范围比int更大,同样分为有符号型和无符号型
 return 0 ;
 }

1.1.3浮点型:

#include<stdio.h>
 int main()
 {
float a = 3.14 ;//用float来声明浮点型变量
 
 double a =3.1415926;//double可以表示的小数更精准
 return 0 ;
 }

1.1.4布尔类型:

使用布尔类型需包含头文件 (#include<stdbool.h>)
在C语言最初并没有为布尔类型专门设置一个类型,而是用0表示假,非零表示真。但在后来C99的标准中引入了布尔类型,专门用于表示真假。需要注意的是布尔类型的变量取值只能是true 或false
代码演示如下

#include<stdio.h>
#include<stdbool.h>
 int main()
 {
 _bool WCY = true ;
 if(WCY)
 printf("i love world");
 return 0 ;
 }

1.2自定义类型

1.数组 2.结构体-struct 3.枚举-enum 4.联合体-union

1.3类型长度

每一种数据类型都有自己的长度,我们通过创建不同的变量,来控制存储数据的范围。通过提高存储数据的利用率来不断优化写出来的程序。为了计算数据类型的长度,这里引入“sizeof”,它不仅是一个关键字,也是操作符,专门用来计算操作符类型的长度,单位是字节。“sizeof”既可以计算数据类型,也可以计算表达式,但使用有细微区别。

sizeof(类型)
sizeof 表达式

sizeof 的计算值结果为size_t类型。

C语言规定size of的返回值是无符号整数,并没有规定具体的类型,而是给系统自己决定,然在不同系统中,返回值的类型可能是 unsigned int‘;unsigned long int;unsigned long long int,这样导致printf函数在打印时,占位符分别是%u %lu %llu。这样不利于程序的移植
C语言提供了一种解决,创建了一个类型别名size_t 用来同意表示sizeof的返回值。

比如:

#include<stdio.h>
int main()
{
 
 printf("%zd",sizeof(char));//输出结果为1(单位都是字节)
 printf("%zd",sizeof(_bool));//输出结果为1
 printf("%zd",sizeof(short));//输出结果为2
 printf("%zd",sizeof(int));//输出结果为4
 printf("%zd",sizeof(long));//输出结果为4
 printf("%zd",sizeof(long long));//输出结果为8
 printf("%zd",sizeof(float));//输出结果为4
 printf("%zd",sizeof(double));//输出结果为8
 printf("%zd",sizeof(long double));//输出结果为8
return 0 ;
}

sizeof的计算并不是真正的“计算”
例如

#include<stdio.h>
int main()
{int a =2;
int b = 0;
printf("%d\n",sizeof(a=b+1) );//打印4
//而这里计算过程是,计算机认为b是整型,在+1后依然为整型,固计算结果为4
printf("%d",a);//打印2
//在这里,sizeof在编译时,就根据表达式确定了类型,而表达式的执行却要在程序运行期间才能执行
//在编译期间已经被sizeof处理了,所以运行时不会执行表达式
return 0;
}

2.signed 和 unsigned

C语言使用signed和unsigned来修饰整型和浮点型。
signed表示带有正负号
unsigned表示不带有正负号

使用unsigned的好处是,同样长度的内存,能表示的最大整数值增大了一倍
比如short int取值范围是(-32768~32767)而unsigned short int取值范围(0~655535)

当然这些不死记硬背,没有用,我们需要使用时可以在文件里查找:
在limits.h文件中查找整型的取值范围
在float.h这个头文件里面查找浮点型类型的取值范围

  • SCHAR_MIN , SCHAR_MAX : signed char的最小值和最大值
  • SHRT_MIN , SHRT_MAX : signed short int的最小值和最大值
  • INT_MIN , LONG_MAX : long的最小值和最大值
  • LLONG_MIN , LLONG_MAX :long long的最小值和最大值
  • UCHAR_MAX : unsigned char的最大值
  • USHRT_MAX : unsigned short的最大值
  • UINT_MAX : unsigned int的最大值
  • ULONG_MAX : unsigned long 的最大值
  • ULLONG_MAX :unsigned long long 的最大值

3.变量

3.1创建变量

我们学习数据类型的目的就是创建变量。变量的创建语法如下

#include<stdio.h>
int main()
{
int a = 0;//这个过程就是在创建变量
retrurn 0 ;
}

在创建变量的时候给一个初始值,就叫初始化。此外创建的变量名不能是关键字。

3.2变量的分类

  • 全局变量:大括号外部定义的变量就是全局变量
    全局变量作用更广泛,是整个工程中都有办法使用的变量
  • 局部变量:大括号内部定义的变量就是局部变量
    局部变量只能在自己所在局部使用,但如果局部变量与全局变量同名,局部变量优先

变量都是储存在内存里的:
1.局部变量是放在内存的栈区
2.全局变量是放在内存的静态区
3.堆区是用来动态内存管理的

4.操作符

4.1算数操作符

C语言中为了方便运算,提供一系列操作符,而算数操作符分别是“ +,-, *, /,% “,这些操作符都是双目操作符,也就是都有两个操作数。加减乘正常使用,除法和求模单独讲一下

  • /
    除号两端如果是整数,执行的是整数除法,会丢弃小数部分。
    比如
#include<stdio.h>
int main()
{
int a = 5;
printf("%d",a = 5/2);//输出结果为2
printf("%f",a = 5.0 /2;//输出结果为2.500000,想限制小数位数只需要在f前面加0.x(x代表位数)
return 0:
}
  • %
    求模运算,返回的是两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。
    负数求模的规则是,结果由第一个运算符的正负号决定

4.2赋值运算符

在写代码时,尤其是循环语句里经常会出现一个数自增或者自减,C语言提供简写
例如

a=a+3 可以写成a+=3
a=a-3 可以写成a -=3

常见的赋值符

+= - =
* = /= %=
>>= <<=
&= ^=

4.3单目操作符

4.3.1前置++与后置++

前置++计算口诀:先+1后使用
后置++计算口诀:先使用,后+1

#include<stdio.h>
int main()
{int a=6;
int b=a++;//后置++
printf("%d %d",a,b);//打印的值为7  7
return 0 ;
}
#include<stdio.h>
int main()
{int a=6;
int b=a++;//前置++
printf("%d %d",a,b);//打印的值为7  6
return 0 ;
}

4.3.2前置–和后置–

  • 与前置++和后置++类似
    前置–计算口诀:先-1后使用
    后置–计算口诀:先使用,后-1

4.3.3+和-

  • 这里的+和-不是运算符,代表的是正负号

5.强制转换

操作符中还有一种简单粗暴的特殊操作符,语法很简单

(类型)

例如

#include<stdio.h>
int main()
//int a = 3.1415;编译器是会报错的,因为int表示整型
int a =(int)3.1415 ;//这样写是不会报错的,因为把3.1415强制转化成整型了 
return 0 ;
}

缺点就是会造成数据缺失,例如3.1415强制转化成整型就是3,小数部分舍弃了。

刚刚一辆豪车从我身边开过,溅得我一身水,当时我就发誓,等我有钱了,我一定要买一套属于自己的雨衣,笑了没,笑了就点个赞。
(挑灯夜战,如有错误,麻烦各位大佬评论区指正,感谢!)文章来源地址https://www.toymoban.com/news/detail-832079.html

到了这里,关于C生万物之数据类型及变量与符号<二>的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C】C语言数据类型、常量变量的介绍

    下图为C语言常见的数据类型: (浮点数就是我们常见的小数,字符类型要用‘’引起来,在C语言中字符串类型要用字符数组来表示,以后给大家慢慢介绍) 在C语言中没种数据类型所占的空间大小是不一样的,在这里给大家介绍一个库函数: sizeof ,它可以计算每种数据类型

    2024年02月09日
    浏览(60)
  • 【go语言】2.1.1 变量,常量和数据类型

    Go 语言中,变量是存储数据的基本单位,常量则是固定不变的数据。每个变量和常量都有其对应的数据类型。 在 Go 语言中,你可以使用  var  来声明一个变量: 上面的代码声明了一个名为  name  的变量,它的类型是  string 。你也可以在声明变量的同时给它赋值: 或

    2024年02月15日
    浏览(49)
  • SCL语言的数据类型和常量与变量声明方式

    SCL语言的数据类型主要包含以下几类: 1. 基本数据类型: - BOOL:布尔类型,取值为TRUE或FALSE。 - INT:整数类型,取值范围为-32768~32767(16位PLC)或-2147483648~2147483647(32位PLC)。 - UINT:无符号整数类型,取值范围为0~65535(16位PLC)或0~4294967295(32位PLC)。 - REAL:单精度浮点数

    2024年02月09日
    浏览(48)
  • 【考研数学】概率论与数理统计 —— 第二章 | 一维随机变量及其分布(1,基本概念与随机变量常见类型)

    暑假接近尾声了,争取赶一点概率论部分的进度。 设随机试验 E E E 的样本空间为 Ω Omega Ω , X X X 为定义于样本空间 Ω Omega Ω 上的函数,对于任意 w ∈ Ω w in Omega w ∈ Ω ,总存在唯一确定的 X ( w ) X(w) X ( w ) 与之对应,称 X ( w ) X(w) X ( w ) 为随机变量,一般记为 X X X 。 随机

    2024年02月11日
    浏览(45)
  • C语言系统化精讲(三):C语言变量和数据类型-上篇

    整数: 168,188,520,1314 小数: 1.68,1.88,5.20,13.14 字母: a/A,b/B,c/C,d/D 单词: welcome,hello,world 所谓常量,就是值永远不允许被改变的量,比如一年中有12个月、一天有24小时等。 分类: ①: 整型常量 例如: 10,20,30,40,800,900,-1,-2,-3 ②: 浮点数常量(小数) 3.1415926,4.88,3.14e8,3.14e-9 ps: 3.14

    2024年02月05日
    浏览(52)
  • 教你快速上手C语言中的数据类型和变量

      哈喽,各位铁汁们好啊!✨今天来给大家带来的是初识 C语言 里面的 数据类型 和 变量 。   今天主要带大家简单认识-一下C语言,俗话说 没吃过猪肉,也见过猪跑。 了解下每个数据类型是干嘛的。可以读懂C语言的简单程序,其他的博主就不多介绍了。   后面会为

    2024年02月12日
    浏览(40)
  • C语言自定义数据类型(一)定义和使用结构体变量

    C 语言提供了一些由系统已定义好的数据类型,如:int,float,char  等,用户可以在程序中用它们定义变量,解决一般的问题。 但是人们要处理的问题往往比较复杂,只有系统提供的类型还不能满足应用的要求,C语言允许用户根据需要自己建立一些数据类型,并用它来定义变

    2024年02月02日
    浏览(43)
  • 【JAVA】数据类型与变量(主要学习与c语言不同之处)

    ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 目标: 1. 字面常量 2. 数据类型 3. 变量 在上节课 HelloWorld 程序中, System.Out.println(\\\"Hello World\\\") ; 语句,不论程序何时运行,输出的都是 Hello World,其实 \\\"Hello Wo

    2024年03月28日
    浏览(46)
  • C语言入门教程,C语言学习教程(第三部分:C语言变量和数据类型)二

    前面我们多次提到了字符串,字符串是多个字符的集合,它们由 \\\" \\\" 包围,例如 \\\"http://c.biancheng.net\\\" 、 \\\"C语言中文网\\\" 。字符串中的字符在内存中按照次序、紧挨着排列,整个字符串占用一块连续的内存。 当然,字符串也可以只包含一个字符,例如 \\\"A\\\" 、 \\\"6\\\" ;不过为了操作方

    2024年01月17日
    浏览(48)
  • C语言系列(所需基础:大学C语言及格)-1-编译器/简单的求和代码/数据类型/变量的分类/变量的作用域和生命周期

    为了方便,我使用的是在线的C语言编译器进行程序的运行。 链接:https://www.bejson.com/runcode/c740/ 效果如下: 分为局部变量和全局变量 说白了,放在main函数外面的变量为全局变量,其他为局部变量。

    2024年02月19日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包