初识C语言(2)

文章介绍了C语言中字符串的概念,强调字符串以作为结束标志,示例解释了未包含导致的输出问题。同时,讲解了转义字符的作用,包括 、等,并提供了打印特殊字符的示例。此外,还提到了注释、选择语句(ifelse)、循环语句(while)以及函数和数组的基础知识,包括数组定义、下标和使用方法。
摘要由CSDN通过智能技术生成

5.字符

5.1 字符串

“hello world!\n”

像这种被双引号引起来的字符简称为字符串

  • 注意:字符串的结束标志转义字符 \0,当计算字符串长度的时候并不把\0算进去,遇到\0即结束计算字符串长度。

我们来一段实例说明一下
在这里,我们插入一段代码:

int main()
{
    char arr1[] = "abc";
    char arr2[] = { 'a', 'b', 'c' };
    char arr3[] = { 'a', 'b', 'c', '\0' };
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}

我们创建了三个数组,分别是arr1,arr1,arr3,我们在这三个数组中放入了三个字符a、b、c,但这三种写法导致了2个答案。
我们来看下代码运行之后:
请添加图片描述
这里的烫烫烫是乱码的意思,为什么会这样? 相反arr3并没有这种情况,相比较下我们发现arr3的数组中多了一个\0,答案就在这里。
%s表示输出字符串型,arr2的数组在读取内存空间中,读取到了a、b、c三个字符,但是我们要知道\0是字符串的结束标志,而这三个字符中没有\0,所以计算机会持续向后读取,一直读取到\0为止,又因为后面这段空间中的内容计算机不知道,所以显示了一堆乱码。

printf以%s打印字符串的时候,就从你给的地址开始打印,一直打印到遇到\0为止

而我们的数组arr1之所以能成功打印,是因为在字符串abc后面隐藏了一个\0
上面代码的写法,请各位小伙伴注意甄别。
我们运用strlen函数计算数组长度也可以发现:

#include <stdio.h>
int main()
{
	char  ch1[] = "abc";
	char  ch2[] = { 'a','b','c'};
	int len1 = strlen(ch1);
		printf("%d\n", len1);
	int len2 = strlen(ch2);
		printf("%d\n", len2);
	return 0;
}

请添加图片描述
数组arr1的长度是3,而arr2的长度是33,这里的33其实是一个随机值,因为arr2中没有\0,strlen便自动向后读取,一直到\0为止,而\0在哪我们并不知道,所以这个33并没有实际意义

5.2 转义字符

假如我们要在屏幕上打印一个目录: c:\code\test.c
而打印的结果是这样子的:
请添加图片描述
你会发现少了某些东西,是的,在这里我们就必须要知道转义字符的概念了。

转义字符,转义转义,转变意义,转变意思

是不是有点绕晕了,其实就是换了个意思的意思(doge)

转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\’用于表示字符常量’
\“用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符.
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddd d d表示1~3个八进制的数字。 如: \130 表示字符X
\xddd d表示2个十六进制数字。 如: \x30 表示字符0

所谓的三字母词是??),问号+问号+小括号在某些编译器中会被识别成大括号。

#include <stdio.h>
int main()
{
    //问题1:在屏幕上打印一个单引号',怎么做?
    //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
    printf("%c\n", '\'');
    printf("%s\n", "\"");
    return 0;
}

注:%c的意思是字符类型(char)
在计算机中,字符是如何存储的呢?
计算机识别二进制,所以我们把字符编号,于是就有了ASCII码表

#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0;
}

在这里我们运用strlen计算字符串c:\test\628\test.c的长度,小伙伴们知道答案是多少吗?
答案是15

这里再附上ASCII表
请添加图片描述

6. 注释

顾名思义,就是给代码注释的意思,好让人理解这段代码是用来干什么的
当然还有个用处就是有的不要的代码可以拿来注释掉,注释后的代码并不会参与到程序的运行当中去。
注释有两种风格:

  • C语言风格的注释 /xxxxxx/
    缺陷:不能嵌套注释
  • C++风格的注释 //xxxxxxxx
    可以注释一行也可以注释多行

7. 选择语句

人生要面临许多选择,每次选择都会面临不同的结果,这就是选择
在这里让大家认识一下if else 语句,混个眼熟

#include <stdio.h>
int main()
{
    int coding = 0;
    printf("你会去敲代码吗?(选择1 or 0):>");
    scanf("%d", &coding);
    if(coding == 1)
   {
       printf("坚持,你会有好offer\n");
   }
    else
   {
       printf("放弃,回家打摆子\n");
   }
    return 0;
}

8.循环语句

C语言中如何实现循环的呢?

  • while语句
  • for语句
  • do while语句

咱们今天先来简单认识一下while语句,而for循环和do whlie循环我们后期讲。

//while循环的实例
#include <stdio.h>
int main()
{
    printf("练习满级英雄\n");
    int pra = 0;
    while(pra<=10000)
   {
        pra++;
        printf("继续练习英雄\n");
   }
    if(pra>10000)
        printf("英雄熟练度已满\n");
    return 0;
}

while后面的括号内是判断语句,如果括号内的判断语句成立,则进入循环;括号后是大括号,里面是循环的内容,line++是line = line + 1 的意思,相同的还有变量- -等

9.函数

函数的特点简化代码,代码复用。

先看一段简单的代码:

include <stdio.h>
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个整数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}

这段代码的意思是求和,定义num1,num2两个变量,然后输入两个数对应这两个变量,最后把它们的值放到sum里面去,再打印出来,简单来说就是这样。
以上代码我们用函数也可以做到

#include <stdio.h>
int Add(int x, int y)
{
   int z = x+y;
   return z;
}
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = Add(num1, num2);
    printf("sum = %d\n", sum);
    return 0;
}

我们定义了一个函数Add,这个函数返回整形,函数的内容为定义一个整形变量z,z = x + y,最后返回z的值。
代码运行的顺序是:先从main函数进来,定义num1,num2,num3三个整形变量并初始化,然后打印“输入两个操作数:>”,接着输入两个数,再接着调用函数Add,Add函数返回了一个z值,而z值此时赋值给了sum,最后打印sum的值。
以上只是让大家见识一下,让大家混个眼熟,初步了解一下

10.数组

数组是保存一组相同类型元素的集合

10.1 数组定义

int arr[ ] 这个的意思是一个整形数组,名称叫arr,[ ]里的数字代表能放入几个元素;
类似的还有字符数组如char arr[ ]

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
定义一个整形数组,最多能放入10个元素

10.2 数组的下标

数组的每个元素都有下标
值得注意的是:数组的下标是从0开始的

int arr[10] = {0};
如果数组有10个元素,元素的下标范围是0~9

请添加图片描述

10.3 数组的使用

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

代码很简单,相信你们都能看懂
有两点需要说

  • arr[ ]里可以不写,编译器会根据后面的元素个数自动选择;
  • 根据元素下标来打印

最后这段代码的运行结果是:
请添加图片描述

今天的文章就到这里啦~
我是Dz,我们下期再见~

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值