C语言篇 -初识C语言 - 字符串-转义字符-注释-1
Posted 小奔同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言篇 -初识C语言 - 字符串-转义字符-注释-1相关的知识,希望对你有一定的参考价值。
C语言篇 -(1)初识C语言 - (5)字符串-转义字符-注释-1
简介:
我是一名初学者,我会以我的角度来展现学习编程的一个过程,每个阶段的对知识点的理解都将写在上面,如果后续对知识点的理解有所偏差,我将会在最上面备注所要纠正的地方,并在新发布的博客上面,提醒之前哪个博客的知识点需要纠正,每个阶段全部发完之后将会总结在一个博客上面。(如果大佬看到我的知识点有错并评论,我将会关注大佬并纠正错误的知识点,欢迎各位批评指正)
纠正:
字符串
这一篇博客我们来了解一下字符串,看下面这个我们熟知的也是最先学习的代码
"Hello world!"
这一堆的字母就是字符串字面值,简称字符串,每一个字母都是一个字符,字符串需要用" "双引号来引起,字符需要用’ '单引号来引起,就像下面
"Hello world!" //字符串
'a' //字符
'!' //字符
字符串也算常量,上面三条都算字面常量,之前的讲常量的时候就举过这种例子
那么字符串有什么用呢?
假设我们要把下面的字符串存起来,那么我们需要怎么存呢?
"abcdef"
我们可以把它放在字符串数组里,有两种形式如下:
#include<stdio.h>
int main()
char arr1[10]="abcdef"; //形式一
char arr2[10]='a','b','c','d','e','f'; //形式二
//我们打印一下这些字符串
printf("%s\\n",arr1);
printf("%s\\n",arr2);
return 0;
运行的结果:
abcdef
abcdef
把"abcdef"都存在arr[ ]这个数组里面,[ ]里面数是多少,就能存多少字符
arr[10]可以存10个字符 ,但一定要不小于你要存的字符
你也可以不写[ ]里面的数字,它会自己根据你要存的字符串来调整,就像这样
#include<stdio.h>
int main()
char arr[]="abcdef"; //char-字符类型,没有字符串类型哦
return 0;
那这两种形式有什么区别呢?
我们不写arr[ ]里面的数字,我们来看一下
#include<stdio.h>
int main()
char arr1[]="abcdef";
char arr2[]='a','b','c','d','e','f';
//我们打印一下这些字符串
printf("%s\\n",arr1);
printf("%s\\n",arr2);
return 0;
运行的结果:
abcdef
abcdef烫烫烫烫烫abcdef
哎,发现没有,它们不一样了,那为什么会出现这种情况呢?
先想一个问题,它是根据什么来停止打印的?
(啊,你会问:它们后面啥都没有,我怎么会知道它们根据什么来停下来的)
那里确实看不见有什么标志,但是那个标志就是看不见的,字符串的结束标志是\\0,它是一个我们马上就会学到的转义字符
char arr1[]="abcdef";
这个形式一,字符串后面就默认带了一个\\0
char arr2[]='a','b','c','d','e','f';
这个形式二,后面没有\\0
懂了吧,printf去打印的时候要识别到\\0才会结束
第一个形式最后一个字符结束就识别到了\\0,然后结束
第二个形式识别到最后的f,一直都没有识别到\\0,就一直打印下去,最后就出现刚才的结果
那么如果我们给第二个形式加一个\\0作为结束标志怎么样,不要光想,我们来做一下试试
#include<stdio.h>
int main()
char arr1[]="abcdef\\0"; //我们也试一下给它也加一个\\0
char arr2[]='a','b','c','d','e','f','\\0';
//我们打印一下这些字符串
printf("%s\\n",arr1); //%s是打印字符串的
printf("%s\\n",arr2); //%s是打印字符串的
return 0;
运行的结果:
abcdef
abcdef
结果运行正常了
那么\\0算不算里面的字符串长度的一部分呢?
又来介绍一个好东西,strlen,它可以计算一个字符串长度的函数,但是使用它还是跟以前一样,需要给另一个头文件string.h打一下招呼才能使用它,我们来实操一下:
#include<string.h>
#include<string.h>
int main()
char a[] = "abc";
char b[] = "abc\\0";
printf("%d", strlen(a));
printf("%d", strlen(b));
return 0;
运行结果:
3
3
"abc"
这个字符串的长度为3,所以我们可以知道看不见的\\0并不算在长度里面的,就算在后面加上\\0也是一样
大家可以试一试计算一下第二种形式不加\\0情况下的字符串长度,保持好奇心,去自己尝试一下。
就这样,我们把"abcdef"这个数组储存起来了,那我们要使用里面的字符怎么办?我们还需要再了解一个知识:
调用arr里面字符,用arr[2]就可以调用c,用arr[0]就可以调用a,它们的对应关系也就是:
a b c d e f
0 1 2 3 4 5
我们来实验一下
#include<stdio.h>
int main()
char arr[]="abcdef";
printf("%c",arr[2]);
return 0;
运行结果:
a
#include<stdio.h>
int main()
char arr[]="abcdef";
printf("%c",arr[0]);
return 0;
运行结果:
a
今天结束
作者的悄悄话
悄悄地说:“歪?关注一下作者吧,不关注留个赞也行啊,不留赞评论一下我也行啊,啊?啥都不留?奶奶的,你关注一下我,让我顺着关注去找你理论理论,问问你为啥什么也不留”
零基础 快速学Java韩顺平 p20-26 快速掌握技术转义字符易犯错误注释代码规范
课程
p20-26
如何快速掌握技术或知识点
1.需求导致要学习技术:
- 工作需要
- 跳槽,对方要求
- 技术控
2.看看能否用已有的技术解决需求:
- 能解决但是不完美
- 解决不了
能更深刻地了解新技术,作比较,思考新技术带来的优势。
3.引出我们要学习的新技术和知识点。
4.学习该技术/知识点的基本原理和基本语法(当前不要考虑细节)。
5.快速入门(基本程序,增删改查crud)。
6.开始考虑研究技术的注意事项,使用细节,使用规范,如何优化。
第六步决定你的工资高低
转义字符
在控制台按下Tab可以自动补全
代码:
public class temp{
public static void main(String[] args){
System.out.println("北京\\t上海\\t");
System.out.println("好好学习\\n天天向上\\n");
}
}
第一个方框是编译,第二个是运行。
第三个方框出现乱码,因为没有用GBK。
乱码的解决方法。
于是就能达到第四个方框,正常输出。
易犯错误
注释介绍
comment。
- 单行注释
- 多行注释
- 文档注释
//单行注释
/*
多
行
注
释
*/
注释不会被执行。
多行注释里不能嵌套多行注释
//练习一下文档注释 这里是单行注释
/**
* @author karshey
* @version 1.0
*/
public class temp{
public static void main(String[] args){
System.out.println("练习一下文档注释");
}
}
环境设置也搞了,弄了一亿次还是这样,然后发现在javadoc所在的目录下cmd就可以了
然后发现它说没有java的源文件…后来我尝试把temp.java移到javadoc的bin下又可以了(但是这样肯定不好,bin是不能乱动的)。
这个路径就出现了很多文件:
点开temp.html看看:
嗯,确实。
查资料和配置环境搞了贼久,累觉不爱,赶紧跳过javadoc吧
代码规范
tab整体右移,shift+tab整体左移
行尾风格:
public class temp{
}
次行风格:
public class temp
{
}
以上是关于C语言篇 -初识C语言 - 字符串-转义字符-注释-1的主要内容,如果未能解决你的问题,请参考以下文章