首页 > 其他分享 >基础架构补全—C语言基础入门篇(二)

基础架构补全—C语言基础入门篇(二)

时间:2024-10-14 21:19:42浏览次数:8  
标签:return 补全 操作符 int 入门篇 基础架构 printf -- main

前言:

       上一篇博客我仅简单对C语言语法基础进行了简单介绍,这次我将对其中遗漏知识进行补全延申,但冰冻三尺非一日之寒,现在我也只不过是站在C语言的光辉大门前罢了,尚没有彻底迈出一步,希望各位能共励共勉,在接下来的学习中都能,鹏程发韧,培风图南,日进一卒,功不唐捐!

1. 注释

1.1 定义:

       C语言中的注释是对代码的解释和说明,主要用于提高代码的可读性,但不会被编译器执行。‌ 注释的主要目的是帮助程序员和其他人理解代码的功能、逻辑和设计。通过注释,程序员可以解释代码的意图和目的,以及代码的工作原理。注释不会被编译器执行,因此不会影响程序的运行‌

1.2 使用:

单行注释:以//开头,适用于解释单行代码,属于C语言注释风格(常用)

//int main() 
//{
//    printf("原神");
//    return 0;
//}

多行注释:以/*开头,以*/结尾,适用于解释多行代码,属于C语言注释风格(不可嵌套)

/*
int main() 
{
    printf("原神");
    return 0;
}
*/

2. C语言语句基础

2.1 初识选择语句

如果你玩原神,你就不好好学习,受益一生;

如果你不玩原神,你就好好学习,颓废一生;

这就是选择!

代码实例分析:

int main()
{
	int input = 0;//输入的值
	printf("启动原神>:\n");
	printf("要好好学习吗(1/0)?>:");
	scanf("%d", &input);

	if (input == 1)
		printf("不会玩原神\n");
	else
		printf("会玩原神\n");

	return 0;
}

2.2 初识循环语句

当你每天都玩原神时,玩原神就构成了一个循环

而当你原神六十级时,你这辈子就有了,于是循环结束

这就是一个循环!

代码实例分析:

//原神--六十级--这辈子有了
int main()
{
	int level = 0;

	while (level < 60)
	{
		printf("冒险等级:%d\n", level);
		level = level++;
	}
	if (level = 60)
	{
		printf("这辈子有了!\n");
	}

	return 0;
}

在简单了解选择与循环语句后,我们便可以进入后面的学习内容,乃至对各类语句进行系统性的进阶学习,这里暂不过多讲解,留待后面博客再来细讲

3. 初识操作符

3.1 定义:

C语言中的操作符是一种用于执行特定操作的符号或组合符号

3.2 种类及举例分析:

3‌.2.1 算术操作符‌:

如 + 、- 、* 、/ 、% 等,用于数学运算

代码实例:

//算术操作符:+ - * / %
int main()
{
	float a = 9 / 2.0;// / -- 除法(除号两端须有小数才可执行小数除法)
	int a = 9 % 2;
	printf("%d\n", a);//% -- 取余
	int a = 9 + 2;
	printf("%d\n", a); //+ -- 加法
	int a = 9 - 2;
	printf("%d\n", a); //- -- 减法
	int a = 9 * 2;
	printf("%d\n", a);//* -- 乘法

	return 0;
}

3.2.2 移位操作符

<< -- 左移一位 (乘二)
 >> -- 右移一位 (除二)
移动的是二进制位

代码实例:

int main()
{
	int a = 2;
	int b = a << 1;

	printf("%d\n", b);
	return 0;
}

3.2.3 位操作符

& 按位与
 | 按位或
 ^ 按位异或

3.2.4 赋值操作符

如:= += -= *= /= &= |= ^= <<= >>=等,用于赋值运算

代码实例:

int main()
{
	int a = 2;
	a += 5;//等同a = a + 5;
	a -= 3;//等同a = a - 3;
	printf("%d\n", a);
	return 0;
}

3.2.5 双目操作符

如a+b:其中+有两个操作数,所以为双目操作符

3.2.6 单目操作符

只有一个操作数的,如:

! -- 逻辑反操作

- -- 负值
+ -- 正值

代码实例:

int main()
{
	//0 表示假,非0就是真
	int a = 0;
	printf("%d\n", !a);//默认转为1

	if (a)
	{
		//如果a为真,运行:
	}
	if (!a)
	{
		//如果a为假,运行:
	}

	a = -a;
	a = +a;
	return 0;
}

  & -- 取地址


 sizeof -- 操作符的类型长度(以字节为单位)

代码实例:

int main()
{
	//sizeof是一个操作符
	//用于计算类型或者变量的大小
	int a = 10;
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(a));
	return 0;
}
int main()
{
	int arr[10] = { 0 };//10*4=40个字节
	printf("%d\n", sizeof(arr));//计算的是数组的总大小,单位是字节
	printf("%d\n", sizeof(arr[0]));//4

	int sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素个数
	printf("%d\n", sz);
	return 0;
}

~ -- 对一个数的二进制按位取反

代码实例:

int main()
{
	int a = 0;
	printf("%d\n", ~a);
	//按位取反 把所有二进制位中的数字,1变成0,0变成1
	//整数a = 0
	//二进制:00000000000000000000000000000000(三十二个比特位)
	// 取反:11111111111111111111111111111111
	//整数在内存中储存的是补码
	//一个整数的二进制表示有三种:
	//原码,反码,补码
	//-1:(负数的计算方式)
	// 10000000000000000000000000000001(原码),其中最高位为符号位,后面为有效位
	// 11111111111111111111111111111110(反码):符号位不变,其余按位取反
	// 11111111111111111111111111111111(补码):反码的二进制序列加一
	//正整数:原码,反码,补码都相同

	return 0;
}

-- -- 前置,后置--
++ -- 前置,后置++

代码实例:

int main()
{
	//int a = 10;
	int b = ++a;//前置++:先++,后使用
	printf("%d\n", b);//11
	printf("%d\n", a);//11

	//int b = a++;//后置++:先使用,后++
	//printf("%d\n", b);//10
	//printf("%d\n", a);//11

	int a = 1;
	int b = (++a) + (++a) + (++a);//12
	printf("%d\n", b);

	return 0;
}

* -- 间接访问操作符(解引用操作符)


 (类型) -- 强制类型转换

代码实例:

int main()
{
	int a = (int)3.14;//强制类型转换
	printf("%d\n", a);
	return 0;
}

3.2.7 关系操作符:

 > >= < <=
 != 用于测试“不相等”
 == 用于测试“相等”

3.2.8 逻辑操作符:

&& 逻辑与 有假则为假
|| 逻辑或 有真则为真

代码实例:

int main()
{
	//int a = 4;
	//int b = 0;
	//int c = a && b;//0
	//printf("%d\n", c);

	int a = 4;
	int b = 0;
	int c = a || b;//1
	printf("%d\n", c);

	/*if (a && b)
	{

	}*/
	return 0;
}

3.2.9 条件操作符(三目操作符):

(表达式一) ? (表达式二) : (表达式三) 
若(表达式一)成立,计算(表达式二),整个表达式输出结果:表达式二的结果
若(表达式一)不成立,计算(表达式三),整个表达式输出结果:表达式三的结果

代码实例:

int main()
{
	int a = 4;
	int b = 5;
	int max = 0;
	
	/*if (a > b)
		max = a;
	else
		max = b;*/

	max = a > b ? a : b;
	printf("%d\n", max);

	return 0;
}

3.2.10 逗号表达式:

逗号隔开的一串表达式

代码实例:

int main()
{
	int a = 0;
	int b = 3;
	int c = 5;
	        //a=5       c=1        b=3 
	int d = (a = b + 2, c = a - 4, b = c + 2);
	//逗号表达式,是从左到右依次计算的
	//整个表达式结果是最右边的表达式的结果
	
	printf("%d\n", d);//3

	return 0;
}

3.2.11 下标引用操作符,函数调用操作符,结构成员操作符:

[]  ()  .  ->

代码实例:

//下标引用操作符:
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d\n", arr[5]);//这里的 [] 为下标引用操作符
	return 0;
}
//函数调用操作符:
int main()
{
	//调用函数时,函数名后边的 () 就是函数调用操作符
	printf("原神\n");

	return 0;
}

标签:return,补全,操作符,int,入门篇,基础架构,printf,--,main
From: https://blog.csdn.net/qq_60329514/article/details/142926757

相关文章

  • MySQL 基础架构
    MySQL基础架构:一条SQL查询语句如何执行连接器(管理连接、权限验证)查询缓存(5.7不推荐使用,8.0完全废弃)解析器(解析树)优化器(索引选择、表关联顺序、执行计划)执行器(调用存储引擎接口)执行引擎(InnoDB、MyISAM、Memory)MySQL分成Server层和存储引擎层两部分。连接器mysql-h<ip......
  • 使用PyTorch搭建Transformer神经网络:入门篇
    目录简介环境设置PyTorch基础Transformer架构概述实现Transformer的关键组件5.1多头注意力机制5.2前馈神经网络5.3位置编码构建完整的Transformer模型训练模型总结与进阶建议简介Transformer是一种强大的神经网络架构,在自然语言处理等多个领域取得了巨大......
  • 在Ubuntu下,为Vim配置C/C++代码补全
    1.安装vim-plugvim-plug是vim的一个插件管理器。(1)vim-plug的下载网址(2)新建目录~/.vim/autoload/(3)将 plug.vim文件放入该目录(4)添加vim-plug的代码到~/.vimrc文件,如下所示callplug#begin()"ListyourpluginsherePlug'tpope/vim-sensible'callplug#end......
  • [米联客-XILINX-H3_CZ08_7100] FPGA_SDK入门篇连载-08PS 私有看门狗定时器实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA实验平台:米联客-MLK-H3-CZ08-7100开发板板卡获取平台:https://milianke.tmall.com/登录“米联客”FPGA社区http://www.uisrc.com视频课程、答疑解惑!目录1概述2系统框图3中断资......
  • [米联客-XILINX-H3_CZ08_7100] FPGA_SDK入门篇连载-18 PL AXI-GPIO实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA实验平台:米联客-MLK-H3-CZ08-7100开发板板卡获取平台:https://milianke.tmall.com/登录“米联客”FPGA社区http://www.uisrc.com视频课程、答疑解惑!目录1概述2系统框图3AXI-GPI......
  • [米联客-XILINX-H3_CZ08_7100] FPGA_SDK入门篇连载-26PL 自定义 AXI-Lite-频率计
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA实验平台:米联客-MLK-H3-CZ08-7100开发板板卡获取平台:https://milianke.tmall.com/登录“米联客”FPGA社区http://www.uisrc.com视频课程、答疑解惑!目录1概述2系统框图3等精度......
  • [米联客-XILINX-H3_CZ08_7100] FPGA_SDK入门篇连载-23PL 自定义 AXI-Lite 协议 IP
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA实验平台:米联客-MLK-H3-CZ08-7100开发板板卡获取平台:https://milianke.tmall.com/登录“米联客”FPGA社区http://www.uisrc.com视频课程、答疑解惑!目录1概述2系统框图3AXI总线......
  • 通过理解 Windows rollback attack 的基础架构,用户和管理员可以更有效地保护系统免受
    “Windowsrollbackattack”是一种针对Windows操作系统的攻击手法,具体涉及利用系统恢复或回滚功能来执行恶意行为。以下是关于这种攻击的简要说明:什么是WindowsRollbackAttack定义:这种攻击利用Windows系统的恢复功能(例如,系统还原点或回滚机制)来恢复到之前的状态,从而可......
  • 9月18日 智能ai的代码补全
    在搜索java知识时偶然看到一篇写idea插件的十分好用,抱着试试的态度在插件中找到安装在设置中找到插件,搜索该插件的名字然后点击安装,将会自动出现在左侧的状态栏中,在使用过程中会自动出现可能需要补全的代码只需按tab建即可自动补全,比如输入完这些,基本上就可以开启tabtabtab模式了,t......
  • lazarus使用中文拼音首字母实现中文变量等快速代码补全
    在lazarus使用中文变量等代码补全功能基础上,按以下方法就可以实现输入中文拼音首字母就可以快速代码补全功能。代码补全功能:Ctrl+w 打开\lazarus\ide\wordcompletion.pp找到 procedureAddIfMatch(constALine,ALineUp:string;constAFirstPos,ALength:Integer);(lazarus......