首页 > 其他分享 >关于我、重生到500年前凭借C语言改变世界科技vlog.2

关于我、重生到500年前凭借C语言改变世界科技vlog.2

时间:2024-10-10 23:21:48浏览次数:3  
标签:int unsigned long C语言 操作符 vlog.2 类型 sizeof 500

文章目录

1.数据类型的介绍

1.1 数据类型分类

C语言的数据类型多种多样,类型不仅是我们了解数据的开始,也是数据初始化、函数自定义等的操作,编译器只有知道了数据的类型,才能进行相应的操作
在这里插入图片描述

字符型:char、[signed] char(有符号字符)、[unsigned] char(无符号字符)

整型:int、[signed] int、unsigned int
短整型:short [int]、[signed] short [int]、unsigned int [int]
长整型:long [int]、[signed] long [int]、unsigned long [int]
更长的整型:long long [int]、[signed] long long [int]、unsigned long long [int]

浮点型:float、double、long double

布尔类型:布尔类型本不是专门的类型,后来为了表示真假,引入了布尔类型_Bool或bool,使用布尔类型必须包含头文件#include <stdbool.h>,布尔类型返回的是true或false,表示真假

注意每种类型的数据都有自己的长度,存储的数据范围有所差异,这里就不过多赘述(详情可看https://legacy.cplusplus.com/)

1.2 sizeof操作符

sizeof是一个关键字,也是个操作符,用于计算操作符数的类型长度,单位是字节
sizeof有两种计算方式:sizeof(类型)、sizeof 表达式
这里要注意的是sizeof后边的表达式是不参与真实运算的,例如:

​
#include <stdio.h>
int main() 
{
    int num = 10;
    int result = sizeof(num + 20);
    // 这里 num + 20 并不会真正进行加法运算,只是根据 num 的类zd型(int)来确定大小。
    printf("Size of num + 20: %zd\n", result);
    return 0;
}

显而易见这里输出的result的值应为4,在VS2022的X64环境下,常见的int为4个字节,char为1个字节,这里只是根据其类型得出是4个字节。而且sizeof需要用%zd(无符号整型)来打印,sizeof的计算结果是size_t类型的。

sizeof 运算符的返回值,C 语言只规定是无符号整数,并没有规定具体的类型,而是留给系统自己去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是unsigned int ,也有可能是 unsigned long ,甚至是 unsigned long long ,对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。C 语言提供了⼀个解决方法,创造了⼀个类型别名 size_t ,用来统⼀表示 sizeof 的返回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是unsigned long long

1.3 signed和unsigned

signed表示一个类型带有正负号,unsigned表示一个类型不带有正负号,也就是正整数,所以对于int来说完整的写法应该是signed int,只不过平常忽略不写,但写了也不算错

int 类型也可以不带正负号,只表示非负整数,这时就必须使用关键字unsigned声明变量。unsigned int里面的int可以省略,也就是可以写成unsigned,字符char也存在signed、unsigned

值得注意的是C语言规定char是否默认带有正负号由当前系统决定,这就是说,char 不等同于 signed char ,它有可能是 signed char ,也有可能是unsigned char

2.变量的介绍

2.1 创建与初始化

我们都知道变化的量叫变量,不变的称为常量,创建形式为data_type name,第一个为数据类型,第二个为变量名,例如int a = 10,在变量在创建的时候就给⼀个初始值,这就叫初始化

2.2 分类

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

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

注意当局部变量和全局变量同名时,局部变量优先使用

2.3 存储

内存中有三个区域:栈区、堆区、静态区

  1. 局部变量是放在内存的栈区
  2. 全局变量是放在内存的静态区
  3. 堆区是用来动态内存管理的(后期会介绍)

3.操作符的介绍

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

C语⾔中为了方便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符。
分别是: + - * / % ,这些操作符需要两个操作数进行计算的都是双目操作符,操作符也叫做运算符

用+ 和 - 来完成加法和减法

运算符 * 用来完成乘法

运算符 / 用来完成除法,除号的两端如果是整数,执行的是整数除法,得到的结果也是整数,如果运算数中至少有一个float浮点数,就能得到浮点数

运算符 % 表示求模(余)运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数,负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定

3.2 赋值操作符:=和复合赋值

赋值操作符 = 是⼀个随时可以给变量赋值的操作符,要赋的值放在右边。赋值也可以连续赋值,从右向左依次赋值

对一个数进行自增、自减操作

int a = 10;
a = a+3;
a = a-2;

用复合赋值的方法:

int a = 10;
a += 3;
a -= 2;

代码会显得更方便简洁,对以上的算术操作符都适用

3.3 单目操作符:++、–、+、-

C语言中还有⼀些操作符只有⼀个操作数,被称
为单目操作符。 ++、–、+(正)、-(负) 就是单目操作符

前置++

int a = 10;
int b = ++a;//++的操作数是a,是放在a的前⾯的,就是前置++
printf("a=%d b=%d\n",a , b);

计算口诀:先+1,后使用
a原来是10,先+1,后a变成了11,再使用就是赋值给b,b得到的也是11,所以计算后,a和b都是11

后置++

int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
printf("a=%d b=%d\n",a , b);

计算口诀:先使用,后+1
a原来是10,先使用,就是先赋值给b,b得到了10,然后再+1,然后a变成了11,所以直接计算后a是11,b是10

前置–和后置++与上面同理

4.强制类型转换

以一段代码做例子就明白了

int a = 3.14;
//a的是int类型, 3.14是double类型,两边的类型不⼀致,编译器会报警告

消除这个警告,就可以使用强制类型转换

int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分入代码片

注意强制转化只在万不得已的时候使用

5.占位符的介绍及使用

占位符在printf中这样使用:

#include <stdio.h>
int main()
{
 printf("There are %d apples\n", 3);
 return 0;
}

这里输出There are 3 apples,这样输出语句更能提高程序的稳定性和准确性

除此之外,还有很多常见的占位符
• %c :字符。
• %d :十进制整数
• %f :小数(包含 float 类型和 double 类型)
• %p :指针(用来打印地址)
• %s :字符串。
• %u :无符号整数
• %x :十六进制整数
• %zd : size_t 类型

限定宽度

#include <stdio.h>
int main()
{
 printf("%5d\n", 123); // 输出为 "  123"
 return 0;
}

%5d 表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面会添加空格。输出的值默认是右对齐,即输出内容前面会有空格
如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的 % 的后面插入⼀个 - 号

总是显示正负号

默认情况下, printf() 不对正数显示 + 号,只对负数显示 - 号。如果想让正数也输出 + 号,可
以在占位符的 % 后面加⼀个 +

限定小数位数

// 输出 Number is 0.50
#include <stdio.h>
int main()
{
 printf("Number is %.2f\n", 0.5);
 return 0;
}

如果希望小数点后面输出3位( 0.500 ),占位符就要写成 %.3f
也可以和限定宽度结合使用,比如%6.2f,输出为"**0.50"(这里的*表示空格)
最小宽度和小数位数这两个限定值,都可以用 *代替,通过 printf() 的参数传入

输出部分字符串

可以用 %.[m]s 指定输出的长度,其中 [m] 代表⼀个数字,表示所要输出的长度

// 输出 hello
#include <stdio.h>
int main()
{
 printf("%.5s\n", "hello world");
 return 0;
}

这里输出前五个字符,即“hello”

6.scanf函数的介绍

scanf() 函数用于读取用户的键盘输入
程序运行到这个语句时,会停下来,等待用户从键盘输入,输入数据、按下回车键后, scanf() 就会处理用户的输入,将其存入变量

scanf的使用方法与printf类似

scanf("%d%d%f%f", &i, &j, &x, &y);

不过scanf需要加取地址符号&(后面会讲)

注意scanf() 的返回值是一个整数,表示成功读取的变量个数。
如果没有读取任何项,或者匹配失败,则返回 0 。
如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量 EOF (-1)

希望读者们多多支持

小编会持续更新

你们的鼓励就是我前进的动力!

在这里插入图片描述

标签:int,unsigned,long,C语言,操作符,vlog.2,类型,sizeof,500
From: https://blog.csdn.net/Zero_VPN/article/details/142828273

相关文章

  • 【C语言系列】分支语句和循环语句
    C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1.条件判断语句也叫分支语句:if语句、switch语句;2.循环执......
  • C语言最重要的知识点复习资料
    总体上必须清楚的: 1)结构化程序的三种基本结构:顺序结构 ,循环结构(三种循环语句),选择结构(if和switch) 2)读程序从main()开始,按从上往下顺序(main函数是程序的入口也是程序的终点,总体顺序结构,遇到循环做循环,遇到选择做选择,程序的其他函数不管其位置是在main函数......
  • C语言计算GPS卫星位置
    1概述在用GPS信号进行导航定位以与制订观测计划时,都必须已知GPS卫星在空间的瞬间位置。卫星位置的计算是根据卫星电文所提供的轨道参数按一定的公式计算的。本节专门讲解观测瞬间GPS卫星在地固坐标系中坐标的计算方法。2卫星位置的计算1.计算卫星运行的平均角速度n根据......
  • C语言必背词汇有哪些
    auto:声明自动变量;double:声明双精度变量或函数;int:声明整型变量或函数;struct:声明结构体变量或函数;break:跳出当前循环;else:条件语句否定分支(与;if;连用);long:声明长整型变量或函数;switch:用于开关语句;case:开关语句分支;enum:声明枚举类型;register:声明寄存器变量;typedef:用以给......
  • C语言初学:常量和变量
    常量整型常量实型常量字符常量用一对单引号将一个字符括起来。字符串常量由一对双引号引起将零个或多个字符序列括起来。变量变量的输入与输出标准格式转换将标准日期格式YYYY-MM-DD转换为中国美国英国三个国家的三种日期格式代码如下:输出公民身份证号码的各组成......
  • 【趣学C语言和数据结构100例】
    【趣学C语言和数据结构100例】问题描述输入两个正整数m和n,求其最大公约数和最小公倍数输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数求Sn=a+aa+aaa+…+a…a之值,其中a是一个数字,n表示a的位数,n、a由键盘输入。例如:2+22......
  • 【Leecode 随笔】C语言版看了不后悔系列持续更新中。。。
    文章目录题目一:两数相除题目描述示例1:示例2:注意:解题思路示例代码深入剖析题目二:加一题目描述示例1:示例2:解题思路示例代码深入剖析题目三:快乐数题目描述示例1:示例2:解题思路示例代码深入剖析......
  • 实验2_C语言分支与循环基础应用编程
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321//随机摇学号intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));//以当前系统时间作为随机种子......
  • 【C语言复习】常见概念(零基础)
    【C语言复习】常见概念1、C语言是什么?2、C语言的历史和辉煌3、编译器的选择VS20223.1编译和链接3.2编译器的对比3.3VS2022的优缺点4、VS项⽬和源⽂件、头⽂件介绍5、第一个C语言程序6、main函数(主函数)7、printf和库函数8、关键字介绍9、字符和ASCII编码10、字符串......
  • 操作系统:内核的基本实现(一)屏幕输出与C语言支持
    使用C语言cdecl约定HimuOSKernel遵守cdecl约定,在32位操作系统上,函数实参在线程栈上按照从右至左的顺序依次压栈(x86cdecl的参数总是在栈上)函数结果保存在寄存器EAX/AX/AL中浮点型结果存放在寄存器ST0中编译后的函数名前缀以一个下划线字符调用者负责清栈8比特或......