C语言菜鸟入门·关键字·int的用法

目录

1.  int关键字

1.1  取值范围

1.2  符号类型

1.3  运算

1.3.1  加法运算(+)

1.3.2  减法运算(-)

1.3.3  乘法运算(*)

1.3.4  除法运算(/)

1.3.5  取余运算(%)

1.3.6  自增(++)与自减(--)

1.3.7  位运算

2.  更多关键字


1.  int关键字

        int 是一个关键字,用于声明整数类型的变量。整数是没有小数部分的数字,可以是正数、负数或零。在 C 语言中,int 类型默认是带符号(signed)的,这意味着它可以表示负数、零和正数。

语法示例:

int a = 10;  // 声明一个整数变量 a 并初始化为 10
int b;       // 声明一个整数变量 b,但不初始化

1.1  取值范围

        int 的具体范围取决于系统架构和编译器的实现。通常情况下,int 的大小为 4 字节(32 位),但在某些系统上,它也可能是 2 字节(16 位)或 8 字节(64 位)。

常见平台的范围(以 32 位系统为例):

        32 位系统:int 类型的范围大约是 -2,147,483,648 到 2,147,483,647(即 -2³¹ 到 2³¹-1)。

#include <stdio.h>
#include <limits.h>  // 包含 INT_MAX 和 INT_MINint main() {printf("int max: %d\n", INT_MAX);  // 输出 2147483647printf("int min: %d\n", INT_MIN);  // 输出 -2147483648return 0;
}

  • 16 位平台:int 通常是 2 字节。
  • 32 位平台:int 通常是 4 字节。
  • 64 位平台:int 通常是 4 字节,尽管 long 可能是 8 字节。

1.2  符号类型

        默认情况下,int 是带符号的(signed),意味着它可以存储负数、零和正数。如果需要明确指出它是带符号的,可以使用 signed int。但是,int 和 signed int 通常是等价的。

signed int a = -5;  // a 是带符号整数
int b = 10;         // b 也是带符号整数,和 signed int 等效

        对于没有符号(无符号)的整数,可以使用 unsigned int,它仅能表示正数和零。

unsigned int x = 5;  // 无符号整数,x 只能是 0 或正数

1.3  运算

        C 语言支持对 int 类型的变量进行各种数学运算,包括加法、减法、乘法、除法、取余等。

1.3.1  加法运算(+)

#include <stdio.h>int main() {int a = 5, b = 3;int sum = a + b;  // sum = 8printf("%d\n", sum);  return 0;
}

1.3.2  减法运算(-)

#include <stdio.h>int main() {int a = 5, b = 3;int sum = a - b;  // sum = 8printf("%d\n", sum);  return 0;
}

        对于加减运算注意考虑到int的取值范围,若是超出范围时会发生溢出。通常情况下,int 在 32 位系统上范围是 -2147483648 到 2147483647。如果超出这个范围,会导致不可预测的行为。

#include <stdio.h>int main() {int a = 2147483647;a = a + 1;  // 会发生溢出,结果会变为负数int b = -2147483648;b = b - 1;printf("%d\n", a);  printf("%d\n", b);     return 0;
}

1.3.3  乘法运算(*)

#include <stdio.h>int main() {int a = 5, b = 3;int sum = a * b;  // sum = 8printf("%d\n", sum);  return 0;
}

1.3.4  除法运算(/)

#include <stdio.h>int main() {int a = 5, b = 3, c = 6;int sum = a / b; int str = c / b;printf("%d\n", sum);  printf("%d\n", str);  return 0;
}

        当使用整数类型进行除法运算时,结果会自动向下取整。如果你需要得到小数结果,应该将其中一个操作数转换为 float 或 double 类型。

#include <stdio.h>int main() {int a = 5, b = 3;float sum = (float)a / b; printf("%f\n", sum);  return 0;
}

1.3.5  取余运算(%)

#include <stdio.h>int main() {int a = 10, b = 3;int remainder = a % b;  // remainder = 1, 10 除以 3 的余数是 1printf("%d\n", remainder);   return 0;
}

        在 C 语言中,取余运算的符号取决于被除数的符号。如果被除数是负数,取余的结果也会是负数。

#include <stdio.h>int main() {int a = -10, b = 3;int remainder = a % b;  int c = 10, d = -3;int yu = c % d;  	printf("%d\n", remainder);   printf("%d\n", yu);   return 0;
}

1.3.6  自增(++)与自减(--)

        ++ 和 -- 是 C 语言中常见的自增和自减运算符。自增运算符(++)会使一个整数增加 1,自减运算符(--)会使其减少 1。

  • 前缀自增(++a)和前缀自减(--a)会先改变变量的值,然后再使用。
  • 后缀自增(a++)和后缀自减(a--)会先使用变量的当前值,然后再改变它。
#include <stdio.h>int main() {int a = 5;printf("%d\n", ++a);  // 输出 6,a 先加 1 再输出printf("%d\n", a++);  // 输出 6,输出后再加 1printf("%d\n", a);    // 输出 7,a 已经加 1int b = 5;printf("%d\n", --b);  // 输出 4,b 先减 1 再输出printf("%d\n", b--);  // 输出 4,输出后再减 1printf("%d\n", b);    // 输出 3,b 已经减 1   return 0;
}

1.3.7  位运算

        C 语言还支持对整数进行位级运算,如按位与(&)、按位或(|)、按位异或(^)、左移(<<)和右移(>>)等操作。

#include <stdio.h>int main() {int a = 5, b = 3;int result = a & b;  // result = 1,按位与printf("与运算a & b:%d\n", result); result = a | b;      // result = 7,按位或printf("或运算a | b:%d\n", result); result = a ^ b;      // result = 6,按位异或printf("异或运算a ^ b:%d\n", result); result = a << 1;     // result = 10,左移一位printf("左移一位a << 1:%d\n", result); result = a >> 1;     // result = 2,右移一位printf("右移一位a >> 1:%d\n", result); return 0;
}

2.  更多关键字

C语言32个关键字

跳转链接

第一类:数据类型关键字

A基本数据类型(5个)

void

声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果C语言菜鸟入门·关键字·void的用法-CSDN博客

char

字符型类型数据,属于整型数据的一种。

C语言菜鸟入门·关键字·char关键字-CSDN博客

int

整型数据,通常为编译器指定的机器字长。

C语言菜鸟入门·关键字·int的用法-CSDN博客

float

单精度浮点型数据,属于浮点数据的一种,小数点后保存6位。

C语言菜鸟入门·关键字·float以及double的用法-CSDN博客

double

双精度浮点型数据,属于浮点数据的一种,比float保存的精度高,小数点后保存15/16位。

B类型修饰关键字(4个)

short

修饰int,短整型数据,可省略被修饰的int。

C语言菜鸟入门·关键字·修饰关键字short、long、signed、unsigne详细-CSDN博客

long

修饰int,长整形数据,可省略被修饰的int。

signed

修饰整型数据,有符号数据类型。

unsigne

修饰整型数据,无符号数据类型。

C复杂类型关键字(5个)

struct

结构体声明。

C语言菜鸟入门·结构体·struct用法超详细解析_struct在c语言中用法-CSDN博客

union

共用体声明。

C语言菜鸟入门·关键字·union的用法-CSDN博客

enum

枚举声明。

C语言菜鸟入门·枚举类型·enum的使用详解-CSDN博客
typedef

声明类型别名。

C语言菜鸟入门·各种typedef用法超详细解析-CSDN博客

sizeof

得到特定类型或特定类型变量的大小。

C语言菜鸟入门·关键字·sizeof的用法-CSDN博客

D存储级别关键字(6个)

auto

指定为自动变量,由编译器自动分配及释放。通常在栈上分配。

C语言菜鸟入门·关键字·auto的用法、register的用法-CSDN博客

static

指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。

register

指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。

C语言菜鸟入门·关键字·auto的用法、register的用法-CSDN博客

extern

指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的。

const

与volatile合称“cv特性”,指定变量不可被当前线程/进程改变

C语言菜鸟入门·关键字·const的用法、volatile的用法-CSDN博客

volatile

与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值。

第二类:流程控制关键 字

A跳转结构(4个)

return

用在函数体中,返回特定值(或者是void值,即不返回值)。

continu

结束当前循环,开始下一轮循环。

break

跳出当前循环或switch结构。

goto

无条件跳转语句。

分支结构(5个)

if

条件语句。

C语言菜鸟入门·判断语句(if语句、if...else语句、嵌套if语句)详细介绍_c语言else if-CSDN博客

else

条件语句否定分支(与if连用)。

switch

开关语句(多重分支语句)。

case

开关语句中的分支标记。

default

开关语句中的“其他”分治,可选。

C循环结构(3个)

for

or循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件。

do

do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件。

while

while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件,以上循环语句,当循环条件

表达式为真则继续循环,为假则跳出循环。

关键字_时光の尘的博客-CSDN博客

C语言_时光の尘的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络(系统性学习三):多层感知机(MLP)

相关文章&#xff1a; 神经网络中常用的激活函数 神经网络&#xff08;系统性学习一&#xff09;&#xff1a;入门篇 神经网络&#xff08;系统性学习二&#xff09;&#xff1a;单层神经网络&#xff08;感知机&#xff09; 多层感知机&#xff08;MLP&#xff09; 多层感…

Vue——响应式数据,v-on,v-bind,v-if,v-for(内含项目实战)

目录 响应式数据 ref reactive 事件绑定指令 v-on v-on 鼠标监听事件 v-on 键盘监听事件 v-on 简写形式 属性动态化指令 v-bind iuput标签动态属性绑定 img标签动态属性绑定 b标签动态属性绑定 v-bind 简写形式 条件渲染指令 v-if 遍历指令 v-for 遍历对象的值 遍历…

鸿蒙开发Hvigor插件动态生成代码

Hvigor允许开发者实现自己的插件&#xff0c;开发者可以定义自己的构建逻辑&#xff0c;并与他人共享。Hvigor主要提供了两种方式来实现插件&#xff1a;基于hvigorfile脚本开发插件、基于typescript项目开发。下面以基于hvigorfile脚本开发插件进行介绍。 基于hvigorfile脚本…

蓝桥杯c++算法秒杀【6】之动态规划【上】(数字三角形、砝码称重(背包问题)、括号序列、组合数问题:::非常典型的必刷例题!!!)

下将以括号序列、组合数问题超级吧难的题为例子讲解动态规划 别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! ! &#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 动态规划 一、数字三角形 【问题描述】 上图给出了一…

YOLO-FaceV2: A Scale and Occlusion Aware Face Detector

《YOLO-FaceV2:一种尺度与遮挡感知的人脸检测器》 1.引言2.相关工作3.YOLO-FaceV23.1网络结构3.2尺度感知RFE模型3.3遮挡感知排斥损失3.4遮挡感知注意力网络3.5样本加权函数3.6Anchor设计策略3.7 归一化高斯Wasserstein距离 4.实验4.1 数据集4.2 训练4.3 消融实验4.3.1 SEAM块4…

Python 虚拟环境使用指南

Python 虚拟环境使用指南 博客 一、创建虚拟环境 在开始使用Python虚拟环境之前&#xff0c;我们需要先创建一个新的虚拟环境。 1. 基础创建流程 首先&#xff0c;进入您的项目目录&#xff1a; cd path\to\your\project然后使用以下命令创建虚拟环境&#xff1a; pytho…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;以及通过理论课学习与实验参考书的帮助&#xff0c;熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作&#xff1b;作为后续实验的基础&#xff0c;根据实验要求重…

深入解析自校正控制(STC)算法及python实现

目录 深入解析自校正控制(STC)算法第一部分:自校正控制算法概述1.1 什么是自校正控制1.2 自校正控制的核心思想1.3 STC 的应用场景1.4 STC 的分类第二部分:自校正控制算法的数学基础2.1 动态系统模型2.2 参数辨识方法2.3 控制器设计2.4 稳定性分析第三部分:Python 实现自校…

Linux 正则表达式(basic and extened)

正则表达式(Regular Expressions)&#xff0c;整理自&#xff1a; https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html gred sed 定义 Regular Expressions (REs) provide a mechanism to select specific strings from a set of character strings.…

【创建型设计模式】单例模式

【创建型设计模式】单例模式 这篇博客接下来几篇都将阐述设计模式相关内容。 接下来的顺序大概是&#xff1a;单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 一、什么是单例模式 单例模式是一种创建型设计模式&#xff0c;它保证一个类仅有一个实例&#…

【Elasticsearch入门到落地】2、正向索引和倒排索引

接上篇《1、初识Elasticsearch》 上一篇我们学习了什么是Elasticsearch&#xff0c;以及Elastic stack(ELK)技术栈介绍。本篇我们来什么是正向索引和倒排索引&#xff0c;这是了解Elasticsearch底层架构的核心。 上一篇我们学习到&#xff0c;Elasticsearch的底层是由Lucene实…

【Spring Boot】# 使用@Scheduled注解无法执行定时任务

1. 前言 在 Spring Boot中&#xff0c;使用Scheduled注解来定义定时任务时&#xff0c;定时任务不执行&#xff1b;或未在规定时间执行。 import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;Component public c…

Ubuntu24.04下的docker问题

按官网提示是可以安装成功的&#xff0c;但是curl无法使用https下载&#xff0c;会造成下述语句执行失败 # Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https…

STM32总体架构简单介绍

目录 一、引言 二、STM32的总体架构 1、三个被动单元 &#xff08;1&#xff09;内部SRAM &#xff08;2&#xff09;内部闪存存储器 &#xff08;3&#xff09;AHB到APB的桥&#xff08;AHB to APBx&#xff09; 2、四个主动&#xff08;驱动&#xff09;单元 &#x…

el-input绑定点击回车事件意外触发页面刷新

小伙伴们在项目中应该还是比较常用键盘指定按键事件的&#xff0c;尤其是一些筛选条件的通过点击键盘回车按键去触发搜索 例如&#xff1a; <el-form><el-form-item label条件title><el-input v-modelformData.searchKey keydown.entersearch></el-input…

C# Postman或者PostApi调试前端webapi接口发送带有request/body/head信息

知识&#xff1a; 前端接口&#xff0c;表单形式提交。 req.ContentType "application/x-www-form-urlencoded"; x-www-form-urlencoded 是一种常见的 MIME 类型&#xff0c;用于将键值对编码为 HTTP 请求体中的 URL 编码格式。在 Web API 中&#xff0c;x-www-for…

李宏毅机器学习课程知识点摘要(1-5集)

前5集 过拟合&#xff1a; 参数太多&#xff0c;导致把数据集刻画的太完整。而一旦测试集和数据集的关联不大&#xff0c;那么预测效果还不如模糊一点的模型 所以找的数据集的量以及准确性也会影响 由于线性函数的拟合一般般&#xff0c;所以用一组函数去分段来拟合 sigmoi…

CentOS:A服务器主动给B服务器推送(上传),B服务器下载A服务器文件(下载)

Linux:常识(bash: ip command not found )_bash: ip: command not found-CSDN博客 rsync 中断后先判断程序是否自动重连:ps aux | grep rsync 查看目录/文件是否被使用(查询线程占用):lsof /usr/local/bin/mongodump/.B_database1.6uRCTp 场景:MongoDB中集合非常大需要…

七、SElinux

一、SElinux简介 SELinux是Security-Enhanced Linux的缩写&#xff0c;意思是安全强化的linuxSELinux 主要由美国国家安全局(NSA)开发&#xff0c;当初开发的目的是为了避免资源的误用传统的访问控制在我们开启权限后&#xff0c;系统进程可以直接访问当我们对权限设置不严谨时…

opencv相关报错

官网 报错&#xff1a; ./smart_car_camera ./smart_car_camera: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory 一、 解决方法&#xff1a; 安装 mlocate 工具&#xff0c;这样才能使用 update…