练气四层 —— 初识C语言基本结构一

目录

一.修炼必备

二.字符串

三.转义字符

四.注释

五.基本了解条件语句

六.循环语句初了解

七.数组初识

八.操作符

九.总结

恭喜你!!!成功突破到了练气四层!!!


一.修炼必备

  1.入门必备:VS2019社区版,下载地址:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com)

  2.趁手武器:印象笔记/有道云笔记

  3.修炼秘籍:牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网 (nowcoder.com)

  4.雷劫必备:leetcode 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

注:遇到瓶颈怎么办?百度百科_全球领先的中文百科全书 (baidu.com)

二.字符串

  1.概念:由双引号("")引起来的一串字符称为字符串字面值(String Literal),或者简称字符串

  2.字符串的结束标志是\0的转义字符,在计算字符串长度的时,\0不算做字符串中的内容,但是在使用字符数组存储字符串的时候,\0也占一个字节的空间

  3.代码详解:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcdef";//补全为:"abcdef\0"
	int len = strlen(arr);//6:计算时不包括\0
	int sz = sizeof(arr) / sizeof(arr[0]);//7,因为\0也要包括一个字节
	printf("len=%d\n", len);//6
	printf("sz=%d\n", sz);//7
	return 0;
}

  4.思考如下代码输出什么?

#include <stdio.h>
#include <string.h>

int main()
{
	char arr1[] = "bit";
	char arr2[] = { 'b','i','t' };
	char arr3[] = { 'b','i','t','\0' };
	printf("%s\n", arr1);//bit:遇到\0停止,但不包括\0
	printf("%s\n", arr2);//未知:不知道什么时候遇到\0
	printf("%s\n", arr3);//bit:因为遇到了\0(第四个字符)
	printf("%d\n", strlen(arr1));//3:遇到\0停止,但不包括\0
	printf("%d\n", strlen(arr2));//未知:不知道什么时候遇到\0
	printf("%d\n", strlen(arr3));//3:因为遇到了\0(第四个字符)
	return 0;
}

三.转义字符

  1.常用转义字符

转义字符解释
\?在书写连续多个问号时使用,防止被解析成三字母词
\'用于转义‘,防止'与最近的'进行匹配
\"用于转义",防止"与最近的"进行匹配
\\用于转义\,防止\被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f

进纸符

\n换行符
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制数
\xdddd表示2个十六进制数

  2.代码解释

#include <stdio.h>

int main()
{
	printf("%c\n", '\'');// ',需使用\对'进行转义
	printf("%s\n", "\"");// ",需使用\对"进行转义
	printf("%c\n", '\\');// /,需使用\对\进行转义
	printf("%c\n", '\a');//蜂鸣
	printf("abcdef\b\n");//abcde:\b退了一格,把f的位置占了,若跟\n连用,则不会占用
	printf("abcdef\f\n");//\f:进纸符
	printf("abcdef\n\n");//\n:换行符
	printf("abcde\rfgh\n");//\r:回车符
	printf("abcd\te\tf\tg\n");//\t:水平制表符
	printf("abcd\ve\vf\vg\n");//\v:垂直制表符
	printf("%d\n", '\234');//\ddd:八进制数
	printf("%d\n", '\x34');//\xdd:十六进制数
	return 0;
}

  3.思考以下代码的输出?

#include <stdio.h>
#include <string.h>

int main()
{
	printf("%d\n", strlen("abcdef"));//6
	printf("%d\n", strlen("c:\test\628\test.c"));//14
	//注:转义字符只算作一个字节
	return 0;
}

四.注释

  1.注解的形式

第一种形式://(由c++引进,可注释一行,也可注释多行)
第二种形式:/**/(不能进行嵌套引用)

  2..注释的作用

    1)代码中由不需要的代码可以直接删掉或注释掉

    2)难理解的代码应该进行注释,好帮助其他人理解以及后期的复习

五.基本了解条件语句

  1.什么叫做条件语句?

   —— 让你做选择的事,比如:你吃香蕉还是苹果?(只能二选一)

  2.if语句:if()内的表达式为真,则执行if语句,反之,跳过if语句

#include <stdio.h>

int main()
{
	int num = 1;
	if (num)
	{
		printf("好好学习,拒绝摆烂!!!\n");
	}
	if (!num)
	{
		printf("摆烂ing!!!\n");
	}
	return 0;
}

  3.if-else语句:if()内的表达式为真,则执行if语句,反之,执行else里面的语句

#include <stdio.h>

int main()
{
	int num = 1;
	if (num)
	{
		printf("好好学习,拒绝摆烂!!!\n");
	}
	else
	{
		printf("摆烂ing!!!\n");
	}
	return 0;
}

  4.注:在C语言中,非0表示真(包括负数),0表示假

六.循环语句初了解

1.什么叫做循环?

  —— 每天都要做的事,比如你每天都要干饭,每天都要刷牙,这就是循环!!!

2.while循环

#include <stdio.h>

int main()
{
	int num = 1;
	while (num < 10)
	{
		printf("boy\n");
		num = num + 1;
	}
	return 0;
}

  3.for循环

#include <stdio.h>

int main()
{
	int num = 1;
	for (num = 1; num < 10; num++)
	{
		printf("boy\n");
	}
	return 0;
}

  4.do-while循环

#include <stdio.h>

int main()
{
	int num = 1;
	do
	{
		printf("boy\n");
		num = num + 1;
	} while (num < 10);
	return 0;
}

  注:以上先大概了解格式,后面有详细讲解!!!

  !!!恭喜你,成功达到练气三层巅峰!!! 

七.数组初识

  1.什么是数组?

   —— C语言中数组的定义:一组相同元素类型元素的集合

  2.数组的定义

    1)数组的下标都是从0开始的

    2)数组的大小一旦定义了,那就不能改变

    3)数组的[]中的值只能由常量构成

#include <stdio.h>

int main()
{
	int arr[6] = { 1,2,3,4,5,6 };
	//数组的下标从0开始
	printf("%d\n", arr[0]);
	printf("%d\n", arr[1]);

	//数组的大小一旦定了,不能改变
	//arr[10] = 0;

	//数组的[]中的值只能由常量构成
	int num = 10;
	//int str[num] = {};//错误,num是变量,[]内只能是常量
	return 0;
}

  3.可通过数组的下标访问数组中的任意元素

#include <stdio.h>

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8 };
	printf("%d\n", arr[0]);//访问第一个元素
	printf("%d\n", arr[1]);//访问第二个元素
	printf("%d\n", arr[2]);
	printf("%d\n", arr[3]);
	printf("%d\n", arr[4]);
	return 0;
}

八.操作符

  1.算术操作符

算术操作符解释
+
-
*
/
%取模

  注:/运算符在两边都是整数的时候,得到的数也是整数;%运算符只能用于整数操作

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 3;

	printf("a+b=%d\n", a + b);//a+b=13
	printf("a-b=%d\n", a - b);//a-b=7
	printf("a*b=%d\n", a * b);//a*b=30
	printf("a/b=%d\n", a / b);//a/b=3
	printf("a%b=%d\n", a % b);//a%b=1:取余数
	return 0;
}

  2.移位操作符(初识)

    —— 用于操作二进制位的操作符

移位操作符解释
>>对二进制位进行右移操作
<<对二进制位进行左移操作
#include <stdio.h>

int main()
{
	int a = 1;
	printf("%d\n", a >> 1);//0
	printf("%d\n", a << 3);//8
	
	return 0;
}

  3.位操作符

    —— 用于操作二进制位的操作符

位操作符解释
&按位与
^按位异或
|按位或
#include <stdio.h>

int main()
{
	int a = 1;
	int b = 4;
	printf("a & b=%d\n", a & b);//a & b=0
	printf("a ^ b=%d\n", a ^ b);//a ^ b=5
	printf("a | b=%d\n", a | b);//a | b=5
	
	return 0;
}

  4.赋值操作符

赋值操作符解释
=赋值:a = b,把b赋给a
+=a += b --> a = a + b
-=a -= b --> a = a - b
*=a *= b --> a = a * b
/=a /= b --> a = a / b
%=a %= b --> a = a % b
&=a &= b --> a = a & b
^=a ^= b --> a = a ^ b
|=a |= b --> a = a | b
>>= 

a >>= b --> a = a >> b

<<=a <<= b --> a = a << b
#include <stdio.h>

int main()
{
	int a = 1;
	int b = 2;
	printf("%d\n", a += b);//3
	printf("%d\n", a -= b);//1
	printf("%d\n", a *= b);//2
	printf("%d\n", a /= b);//1
	printf("%d\n", a %= b);//1
	printf("%d\n", a &= b);//0
	printf("%d\n", a ^= b);//2
	printf("%d\n", a |= b);//2
	printf("%d\n", a <<= b);//8
	printf("%d\n", a >>= b);//2
	
	return 0;
}

   5.单目操作符

单目操作符解释
逻辑反:真变假,假变真
-负号/负值
+正号
&取地址符:指针,输入中常用
sizeof操作数的类型长度(字节为单位)
~对操作数的每一个二进制位按位取反
--前置--、后置--
++前置++、后置++
*间接访问操作符(解引用操作符)
(类型)强制类型转换
#include <stdio.h>

int main()
{
	int a = 0;
	//!操作符的使用
	if (!a)
	{
		printf("boy!\n");
	}

	int b = -3;//负号
	int c = +3;//正号,一般省略不写

	//&地址符的使用
	scanf("%d", &b);//在输入函数的使用
	int* p = &b;//在指针的使用

	//sizeof的使用
	int arr[] = { 1,2,3,4 };
	int len = sizeof(arr) / sizeof(arr[0]);

	//~号的使用
	int d = ~c;

	//--,++的使用
	//a = ++b;
	a = b++;
	//a = --b;
	a = b--;

	//*号的使用
	*p = 10;

	//(类型)的使用
	int num = (int)13.14;//把浮点数转为整数
	
	return 0;
}

  6.关系运算符

关系运算符解释
>用于判断大于
>=用于判断大于等于
<用于判断小于
<=用于判断小于等于
!=用于判断不等于
==用于判断相等

  注:关系运算符常用于条件判断和循环中的判断

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 11;
	if (a > b)
	{
		printf("a > b");
	}
	if (a >= b)
	{
		printf("a >= b");
	}

	if (a < b)
	{
		printf("a < b");
	}

	if (a != b)
	{
		printf("a != b");
	}

	if (a == b)
	{
		printf("a == b");
	}
	return 0;
}

  7.逻辑操作符

逻辑操作符解释
&&逻辑与:全真为真,一假为假
||逻辑与:一真为真,全假为假
#include <stdio.h>

int main()
{
	int a = 10;
	int b = 11;
	if (a >= 10 && b > 10)
	{
		printf("t\n");
	}

	if (a > 11 || b > 12)
	{
		printf("y\n");
	}
	return 0;
}

  8.条件操作符(三目运算符)

三目运算符解释
exp1 ? exp2 : exp3如果表达式1为真,则执行表达式2,否则,执行表达式3
#include <stdio.h>

int main()
{
	int a = 10;
	int b = 11;
	int c = a > b ? a : b;//找出a,b中的最大值
	printf("%d\n", c);

	return 0;
}

  9.逗号表达式

逗号表达式解释
exp1,exp2,exp3……代码解释
int main()
{
	//用法1:使用逗号表达式的式子是最后一个表达式
	int a = 10;
	int b = 30;
	int c = 40;
	int d = (a, c, b);
	printf("%d\n", d);//30

	//用法2:在数组中使用
	int arr[] = { 1,2,3,5 };
	return 0;
}

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

  10.下标引用、函数调用和结构成员操作符

下标引用[]
函数调用()
结构成员.和->
#include <stdio.h>

void test()
{
	
}

struct people
{
	char name[];
};

int main()
{
	int arr[10];//[]是下标引用操作符
	test();//()是函数调用操作符

	struct people man = {"jerry"};
	printf("%s\n", man.name);//jerry
	// -> 是使用在结构体指针的,后面细说

	return 0;
}

九.总结

  1.字符串的结束标志

  2.转义字符的使用

  3.注释的作用和使用

  4.条件语句的基本使用

  5.循环的基本了解

  6.什么是数组?

  7.数组的定义

  8.操作符总结

恭喜你!!!成功突破到了练气四层!!!

  • 38
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值