首页 > 其他分享 >初识C语言(02)—学习笔记

初识C语言(02)—学习笔记

时间:2024-06-03 17:10:30浏览次数:11  
标签:02 10 arr return int C语言 初识 printf main

转义字符

转义字符 释义
\0 结束标志
\n 换行
\' 打印单引号
\" 打印双引号
\\ 打印一个反斜杠
\t 水平制表符
\a 警告字符,蜂鸣
? 在书写连续多个问号时使用,防止它们被解析成三字符
\ddd ddd表示1~3个八进制的数字
\xdd dd表示2个十六进制数字
\v 垂直制表符
\r 回车
\f 进纸符
\b 退格符

以下是代码展示

#include <stdio.h>
int main()
{
	printf("abc\0def");
	printf("abcd\n");
	printf("%c\n", '\'');
	printf("%c\n", '\"');
	printf("abc\\0def");
	printf("c:\test\test.c");
	printf("c:\\test\\test.c");
	printf("\a");
	printf("%c\n", "(are you ok??)");
	printf("%c\n", "(are you ok\?\?)");
	return 0;
}
  • 结束标志\0: 如果字符串中出现\0那么程序只打印\0前面的内容。

  • 转义字符?在书写连续多个问号时使用,防止它们被解析成三字母词,三字母词存在与老一版的编译器。

    #include <stdio.h>
    int main()
    {
    //printf("%c\n", "(are you ok??)");  
    	// ??) -> ]
    	// (?? —> [ 
    	//(are you ok] //老版本的编译器输出结果
    printf("%c\n", "(are you ok\?\?)"); //输出:(are you ok??)
    return 0;
    }
    
  • 转义字符\ddd和\xdd,其中ddd表示1~3个八进制的数字,例如 ,\130. 转为十进制结果为
    $$
    80*0+813+8^21=88
    $$
    dd表示2个十六进制数字, 例如,\x30 ,转为十进制结果为
    $$
    160*0+161*3=48
    $$
    打印输出结果为转换为十进制后,十进制对应的ASCII码对应的字符

    #include <stdio.h>
    int main()
    {
    	printf("\130\n");
    	//X
    	printf("\x30\n");
    	// 0
    	return 0;
    }
    
    image-20240603165408366

    补充

    %d - 打印整型
    %c - 打印字符
    %s - 打印字符串
    %f - 打印float类型数据
    %lf - 打印double类型数据
    %zu - 打印sizeof的返回值

条件语句 用if else语句实现

例如,如果好好学习,就能找到好的工作

如果不好好学习,就找不到好的工作

这就是一个选择语句

以下是代码演示

# include <stdio.h>
int main()
{
	// 初始化
	int input = 0;
	//输入
	printf("要好好学习吗?(0/1)\n"); // 提示符
	scanf("%d", &input);
	//if 语句判断
	if ( 1== input)
		printf("找到好的工作\n");
	else
		printf("找不到好的工作\n");
	return 0;
}

循环语句 while语句

有些事情必须持之以恒的去做

例如 while语句实现连续输入1-100的数字

# include <stdio.h>
int main()
{
	int a = 1;
	while (a <= 100)
	{
		printf("%d\n", a);
		a++;
	}
	return 0;
}

函数:减少工作量,实现代码复用

我们可以把函数比作工厂,当要使用函数时,只需将要求的输入数据(相当于原材料)输入到工厂当中,工厂会将其加工成想要的输出数据(相当于产品)。

image-20240529143046915

函数工厂可以分为两大类,一类是库函数,一类是自定义函数

这里主要说明自定义函数,例如计算两个数的和:

# include<stdio.h>

int main()
{
	//初始化
	int num1 = 0;
	int num2 = 0;
	//输入
	scanf("%d %d", &num1, &num2);
	// 求和
	int sum = num1 + num2;
	// 输出
	printf("%d\n", sum);
	return 0;
}

利用函数计算两数的和

# include<stdio.h>
// 自定义求和函数 Add
int Add(int x, int y)
{
	int z = 0;
	z = x + y;
	return z;
}
int main()
{
	//初始化
	int num1 = 0;
	int num2 = 0;
	//输入
	scanf("%d %d", &num1, &num2);
	// 调用求和函数Add
	int sum = Add(num1,num2);
	// 输出
	printf("%d\n", sum);
	return 0;
}

数组

定义

一组相同类型元素的集合

例如要存储1~10的数字

int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }

数组的下标

例如,要访问数组arr的第8个元素,则有

int arr[10] = 1 2 3 4 5 6 7 8 9 10
下标 0 1 2 3 4 5 6 7 8 9
#include<stdio.h>

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d", arr[7]);
	return 0;
}
//输出数字8

数组的使用

打印数组arr当中的所有元素

#include<stdio.h>

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	while(i<10)
	{
		printf("%d\n", arr[i]);
		i++;
	}
	return 0;
}

操作符

算术操作符

+(加) -(减) *(乘) /(除) %(模)

这里有两点需要注意

  • 除号的两端都是整数的时候,执行的是整数除法,如果两端只要有一个浮点数就执行浮点数的除法
  • 取模,相当于两数相除取它们的余数,取模操作符的两个操作符只能是整数
#include <stdio.h>

int main()
{
	int a = 7 / 2;
	int b = 7 % 2;
	printf("%d\n", a); //3
	printf("%d\n", b); //1

	float c = 7 / 2.0;
	printf("% .2f\n", c);//3.50 

	return 0;
}

代码中出现的%.2f表示输出类型是浮点数并保留两位小数。

单目操作符

只需要一个操作数的运算符称为单目运算符。

操作符 描述
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
  • C语言中0表示逻辑假,非零表示逻辑真。
#include<stdio.h>

int main()
{
	int flag = 0;
	if (!flag)
	{
		printf("hello\n");
	}
	return 0;
}
  • -和+

    -是指取相反操作,例如a =10,那么对a 取负值得到-10;b =-9, 那么对b取负值得到9。

    #include<stdio.h>
    
    int main()
    {
    	int a = -10;
    	int b = 9;
    
    	int m = -a;
    	int n = -b;
    
    	int t = +a;
    	int l = +b;
    	printf("%d %d\n", m,n);
    	printf("%d %d\n", t, l);
    	return 0;
    }
    
  • sizeof是操作符,是一个单目操作符

    #include<stdio.h>
    
    int main()
    {
    	//输出对应数据的类型长度
    	int a = 10;
    	printf("%d\n", sizeof(a)); //4
    	printf("%d\n", sizeof(int));//4
    	printf("%d\n", sizeof a);//4
    
    	//计算整个数组的大小,单位是字节
    	int arr[10] = { 0 };
    	printf("%d\n", sizeof(arr)); //40
    	printf("%d\n", sizeof(arr[0]));//4
    	printf("%d\n", sizeof(arr)/ sizeof(arr[0])); //10
    	return 0;
    }
    

    这里 int arr[10] 表示创建一个名为arr的数组,数组长度为10,数组里面存放的是整型数据。arr[0]表示取出数组arr中的第一个元素。

  • --/++

    ++可以分为前置++和后置++。后置++是先使用,后++,即我们先初始化a=10,而当把a++赋值给b时,进行如下操作,第一步,把a =10赋值给b,第二步a自加一;前置++是先++,后使用即我们先初始化a=10,而当把++a赋值给b时,进行如下操作,第一步,a自加一,得到a=11,第二步,把a =11赋值给b。

    #include <stdio.h>
    
    int main()
    {
    	int a = 10;
    	int b = a++;//后置++,先使用,后++
    	//int b = a; a++;
    	printf("%d\n", b);//10
    	int c = 10;
    	int d = ++c;//前置++,先++,后使用
    	// c=c+1;d=c;
    	printf("%d\n", d); //11
    	return 0;
    }
    

    --a 和a--是类似的过程这里不再赘述。

  • 强制类型转换

    以下是代码示例

    # include<stdio.h>
    
    int main()
    {
    	int a = (int)3.14;
    	printf("%d\n", a);
    	return 0;
    }
    

    3.14 是字面浮点数,编译器默认理解为double类型,这段代码所作的操作是将double类型数据转换为int类型的数据,(类型)就是要转换为什么类型的数据。

关系操作符

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

逻辑操作符

&& 逻辑与
|| 逻辑或

逻辑与 是并且的意思,只有所有条件为真,,逻辑才为真;有一个条件为假,,逻辑为假

逻辑或 是或者的意思,只有所有条件为假,,逻辑才为假;有一个条件为真,,逻辑就为真

# include<stdio.h>

int main()
{
	int a = 0; //逻辑假
	int b = 1;//逻辑真
	if (a && b)  //逻辑假
	{
		printf("hhh\n");
	}

	if (a || b)//逻辑真
	{
		printf("aaa\n");
	}
	return 0;
}

条件操作符

exp1 ? exp2 :exp3

条件操作符是有三个操作数,故它是一个三目操作符、

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int r = (a < b ? a : b);
	printf("%d", r);
	return 0;
}

逗号表达式

定义:就是被逗号隔开的一窜表达式

特点:从左向右依次计算,整个表达式的结果是最后一个表达式的结果

exp1 , exp2, exp3 , ..., expN
#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	//			c=8   a=28   5
	int d = (c = a-2,a =b+c,c-3);
	printf("%d\n", d);
	return 0;
}
image-20240603161714431

下标引用、函数调用和结构成员

[], (), ., ->
  • [] 下标引用操作符

    arr[3]中[] 下标引用操作符,arr和3是[]的操作数

    # include<stdio.h>
    int main()
    {
    	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    	int n = 3;
    	arr[n] = 20;//为数组arr的第四个元素赋值为20
    
    	printf("%d\n", arr[n]);
    	return 0;
    }
    
  • ()函数调用操作符

    我们定义求和函数Add,在调用时Add(2,5)时,()是函数调用操作符,Add,2,3都是()的操作数

    #include<stdio.h>
    int Add(int x, int y)
    {
    	return x + y;
    }
    int main()
    {
    	int sum = Add(2, 5);
    	printf("%d\n", sum);//7
    	return 0;
    }
    

移位操作符

>> <<

后续补充~

位操作符

& ^ |

后续补充~

赋值操作符

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

后续补充~

下一期更新,关键字、指针、结构体……_

标签:02,10,arr,return,int,C语言,初识,printf,main
From: https://www.cnblogs.com/DLChen/p/18229222

相关文章

  • 初识计算机
    这节旨在对计算机有个大体划分。目前计算机对我们来说就像是一个黑疙瘩,它由两部分组成——软硬件。何为硬件,何为软件?硬件就是组成计算机的那些看得见摸得着的电子器件,软件就是人类事先编好的程序,这些程序和硬件共同发挥作用。而软件又可以分为两大类:系统软件和应用软件。系统......
  • 2024最新win10专业版密钥永久使用
    Win10专业版是微软面向专业人士和组织推出的Windows10操作系统版本,它包含了面向家庭用户的Win10家庭版的所有功能,并额外提供了许多专业功能,例如:BitLocker设备加密:用于保护设备上的数据,即使设备丢失或被盗也能确保数据的安全。远程桌面连接:允许用户从远程位置连接到他们的......
  • 2024.06 面试准备
     常用名词解释 1.Dubbo与Feign的区别【yh:用的是dobbo,因为高并发考虑】1.1相同点:常见的实现远程调用的方式:Http接口(web接口、RestTemplate+Okhttp)、Feign、RPC调用(Dubbo、Socket编程)、Webservice。1.2不同点Dubbo:支持多传输协议(Dubbo、Rmi、http、redis等等),适合数......
  • [ICPC2024 Xi‘an I] ICPC2024 邀请赛西安站(7/8/13)
    心得[ICPC2024Xi'anI]ICPC2024邀请赛西安站重现赛-比赛详情-洛谷7表示赛时ac了7个,8表示含补题总共ac数,13表示题目总数题目M. ChainedLights打表,发现只有k=1是YES//#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<vector>#include<ma......
  • js_202406
      关于async/await、promise和setTimeout执行顺序 ......
  • P8779 [蓝桥杯 2022 省 A] 推导部分和
    原题链接题解1.集合+搜索2.把数字看成间隔而不是点3.类似于差分约束,这里的建边意味着相对大小,根据传递性可知,如果ab建边,bc建边,那么ac之间的关系也能确定,可以用搜索维护所以unknown代表两个点没有之间或者间接的边相连,可以用集合维护code#include<bits/stdc++.h>#definel......
  • 2024年清洁能源与可持续发展国际会议(ICDESMF 2024)
    2024InternationalConferenceonCleanEnergyandSustainableDevelopment【1】大会信息会议简称:ICDESMF2024大会时间:2024-07-22大会地点:中国·大理截稿时间:2024-07-08(以官网为准)审稿通知:投稿后2-3日内通知会议官网:http://www.icdesmf.com投稿邮箱:icdesmf@sub-p......
  • C语言Prim算法和Prim-Alternat找最小生成树
    文章目录1、用prim算法求最小生成树C语言Prim算法实现2、用Prim-Alternate算法求最小生成树3、C语言Prim-Alternate算法实现1、用prim算法求最小生成树绿色线会标记选过的边从v1当作起始点开始,可选择:(v1,v2)权值为6(v1,v3)权值为3(v1,v4)权值为1从中选择边(v1,v......
  • 【2024】百度指数爬虫,过程加代码
    要爬取百度指数,首先我们要通过Web页面获取api。最关键的三个请求是:/api/AddWordApi/checkWordsExists?word={testwordset}检查关键词是否存在/api/SearchApi/index?area=0&word={words}&area={regionCode}&startDate={startDate}&endDate={endDate}查询关键词指数,参数含......
  • 解锁C语言扫雷:详细攻略与完整代码解析
    目录一、游戏分析与设计1、功能说明2、界面设计3、数据结构分析4、文件设计结构二、扫雷游戏的代码实现1、逐步讲解1-1、打印菜单选择界面1-2、初始化棋盘1-3、打印棋盘1-4、布置雷1-4、排雷2、完整代码(加详细注释)2-1、game.h2-2、game.c2-3、test.c三、结尾在编......