- 前言
- 一、变量和常量(常量)
- 1.变量( [初始c语言1](https://mp.csdn.net/mp_blog/creation/editor/124334944))
- 2.常量(四种)
- 2.1、字面常量
- 2.2、const修饰的常变量
- 2.3#define定义的标识符常量
- 2.4枚举常量
- 二、字符串+转义字符+注释
- 1、字符串
- 1.1什么是字符串?
- 1.2 打印输出字符串
- 1.3求字符串长度
- 2、转义字符
- 1.1 ?(防止被打印成三字母词)
- 1.2. '(字符常量)
- 1.3. t(水平制表符)
- 1.4. ddd(表示1~3个八进制数字)
- 1.5. xdd(表示2个十六进制数)
- 3.注释(//)
- 三、选择语句(if 和else)
- 四、循环语句(while、for 、 do...while )
- 五、函数
- 六、数组(一组相同类型的集合)
- 6.1.多个相同类型值储存,如十个整数
- 6.2.打印是十个数中的某个数
- 6.3。打印数组所以值
- 总结
前言
家人们第二篇来了,距离第一篇5天时间,这五天,我天天追课,没时间写,让爱学习的你我久等了实在抱歉,我也尝到了一直追课的苦头,就是不对当时学到的东西进行总结,很快就忘了,希望家人们不要学我,闲话不多说,开始我们的学习吧,这一篇内容过多,建议家人们想了解那个点,直接点文章目录可以跳到对应的知识点
提示:以下是本篇文章正文内容,下面案例可供参考
一、变量和常量(常量)生活中我们有可变的值和不变的值,可变的值就是变量;
不变的值就是常量如:身份证,性别
字面常量就是从字面上看出来就是这个值
#include2.2、const修饰的常变量int main(){ //字面常量整数30不会变30就是30 30 3.14//小数 'w'//字符 "abc"//字符串 }
2.3#define定义的标识符常量从左边的运行中可以看出变量a可以正常运行,但如果加了const关键字,再去赋值就报错了;是因为加了const就有了常量的属性,而常量不能直接修改
左边为报错的代码在第13行报错,是因为当#define定义的标识符常量MAX有了值后,我们在去赋值,使其值发生改变,就会报错,因为常量是不能修改值的;
右边为能正常运行的值,在第12行定义变量a去储存MAX没有改变MAX的值**是可以正常运行的
注意:这变define定义的标识符一般是大写,小写也可以
2.4枚举常量现在我们是初始c语言,所以简单的来了解一下,生活中有很多东西是一一列举的如颜色
注意:enum是枚举常量关键字
二、字符串+转义字符+注释 1、字符串 1.1什么是字符串?“abcn”
这种由“”双引号包括起来的一堆字符叫做字符串
1.2 打印输出字符串- 那我们怎么去打印实现他呢?
char ch="abc" //错,不能用字符类型去定义字符串,字符串没有数据类型
printf("%s",ch);
我们可以把他放在数组里就可以打印了,有两种形式:
#includeint main(){ //第一种,字符串abc向char类型申请4个空间 char arr1[4]="abc"; //第二种,三个字符向char类型申请四个空间 char arr2[4]={'a','b','c'}; //输出这些字符串 printf("%s",arr1); printf("%s",arr2); return 0; }
运行结果:
abc
abc
那这两种有什么区别呢?注意字符串都是以 为结束标志的,
第一种形式‘’abc”是有四个空间的因为字符串后面有跟 作为结束标志,所以我第一种形式有四个空间,[ ]里面填4
第二种形式他是以一个一个字符打印,而字符没有结束标志 ,所以他占3个空间,而没有结束标志的话他会打印乱码,所以我们[ ]这里得填4使他只有在第4个空间结束,
如果[ ]括号里面填小于或等于他字符串个数的话,他会乱码,如图
当然我们[ ]里可以不填,让编译器帮我们判断字符串大小,第一种形式可以正常打印因为他默认 结束,而第二种形式不行,因为字符没有 ,必须加上 ,才能正常打印,如图
为了更好的体现 的重要性,我们需要知道一下两种形式下的字符串长度,
求一个字符长度要用到strlen函数,他的头文件要用string.h
//使用printf库函数要用到头文件stdio.h #include//使用strlen库函数时要用到头文件string #include int main() { char arr1[] = "abc";//第一种形式 char arr2[] = {'a','b','c'};//第二种形式 //输出打印字符串长度 printf("%dn",strlen(arr1)); printf("%dn",strlen(arr2)); return 0; }
运行结果:
为什么第二种形式会字符长度打印出来是42呢,因为他后面没有跟 ,而 是结束标志,程序走起来的时候找到c这个字符后会一直查找,直到找到 为止,
如果我们要得到正确的字符长度得在字符 ‘c’ 后面加上 ,此时他就会数到第三个停止查找,打印打印字符串长度,如下
char arr2[]={'a','b','c',' '};
printf ("%d",strlen(arr2));
运行结果:
3
从上面几个列子中我们清晰的认识到了 的重要性
注意:strlen在测量字符长度时不算上结束标志
顾名思义转义字符就是转变字符意思
有哪些呢
转义字符有以上这几种,有打钩的是需要记住,认识的
printf("%sn", "(are you ok??)")
//输出打印的结果是:are you ok]
与我们想打印的内容不符,因为,他连续使用了多个问号被编译器认为是三字母词,我们如果要正确打印想要的内容必须在 ?前面加 转变他的意思,如下
//在?前面加让他就是个问号,防止转化为三字母词
printf("%sn", "(are you ok??)");
注意三字母词这个语法在是古老的语法目前只有vc6.0这个编译器才会出现,vs是可以正常打印的,这个语法我们简单的了解一下
1.2. '(字符常量)如果我们要打印一个字符单引号 ‘ ’ ’ 怎么办呢?直接输出打印?不行他会报错,因为他会把前两个和一起,那怎么正确打印很简单在他前面加 就行
如下:
printf("%c", ' '');
运行如图:
相当于你键盘敲Tab键一样的效果,输出内容空四格,如图:
如果你想打印正确全部,不想 t 被转变意思很简单在 t 前面加个转义符 就好
这个3位八进制数字在编译器中会转换成对应2位十进制数字,以对应ASCII码词打印出来,比如我们这边打印八进制 130 如图:
注:十进制88对应ACSII中的字符X
2位十六进制数会转换成2十进制数,以对应的ACSII码词打印出来,比如 x63 这个十六进制数,如图:
总结:如果我们不想让他转变意思直接在其前面加个 就行
我们代码都可以用 // 这个符号来注释我们代码的意思,而注释有以下三个好处
选择语句 if 和 else是对应的语句,也可以成为判断语句,比如:如果我不好好更博客总结就是差生,如果我好好总结就是大牛,这就是选择。
那代码怎么去实现他呢
#includeint main() { int a = 0;//a初始化 printf("要好好写博客总结吗(1/0)?"); scanf("%d", &a);//输入一个值 //判断你输入的数,如果是1则大牛 if (a == 1) { printf("大牛n"); } //否则就是差生 else { printf("差生n"); } return 0; }
输入1运行结果如图:
因为是初识别C语言我们先认识 while 循环,for和do…while后面讲
比如我好好刷题,刷大于20000道题,就成为大牛,我刷题小于或等于20000题就继续努力刷题。
怎么去实现他呢?这时就可以用循环来遍历他?再用选择语句来判断是否大于或小于等于20000,
#includeint main() { printf("好好刷题n"); int a = 0; while (a <= 20000)//循环a<=20000的值 { a++;//a进入循环每次都加1,直到加到等于20000的时候停止 printf("我要继续努力刷题n"); } //上面一直循环到大于20000的时候停止,打印大牛 if (a > 20000) { printf("大牛n"); } return 0; }
运行结果如图 大于20000时打印大牛:
c语言的函数跟数学很像,比如f(x)= x + y 这就是个函数,正常我们求两个数的可以这么求
#includeint main() { int a = 0; int b = 0; //输入两个数 scanf("%d %d", &a, &b); //表达式 int c = a + b; //输出 printf("%dn", c); return 0; }
使用函数求法,如下
#includeint add(int x, int y) { int z = 0; z = x + y; return z; } int main() { //定义两个变量 int n1 = 0; int n2 = 0; //输入两个变量的n1,n2的值返回给add函数,add函数在进行加工求和 scanf("%d %d", &n1, &n2); //求和的值存储在变量sum中 int sum= n1 + n2; //函数加工求和的值打印 printf("%dn", sum); return 0; }
函数名add 相当于加工厂,而n1,n2则相当于原材料,我在主函数大括号里{}放了原材料n1,n2然后拿去函数add加工最后输出。这样有个好处就是便可以定义新的材料拿去给函数加工,一定程度上实现了代码复用,简化了代码
下面让献上我们函数的结构让我们能更好的理解:
比如我们怎么去储存十个数值呢,一个个去定义储存显然不现实,所以我们要到数组
如:
int main()
{
//储存1~10的数
int arr[10]={1,2,3,4,5,6,7,8,9,10};
}
6.2.打印是十个数中的某个数
比如如我们要打印上面的6,怎么打印呢,如:
#includeint main() { //下标 0, 1, 2,3, 4,5, 6,7, 8, 9 int arr[10]={1, 2, 3, 4, 5, 6, 7 ,8, 9,10}; //访问数组下标5,打印6,因为下标是从0开始数的 printf("%dn",arr[5]); return 0; }
我们要用到数组里的值时,都是访问数组下标的,数组下标从0开始数
6.3。打印数组所以值我们怎么去打印上面的十个数值呢,这时就需要用到循环,去遍历输出他
#includeint main() { int arr[10]={1,2,3,4,5,6,7,8,9,10}; int i= 0;//初始化i=0 //访问下标到9,没有10,所以条件不能是i<=10 while(i<10) { //进入循环打印 printf("%d",arr[i]); //i每次加1,返回给while又开始循环,依次类推,直到打印i<10的所以下标对应的数为止 i++; } return 0; }
总结
能看到这里的家人,应该或多或少有些许收获吧,如果你们跟我一样在看时有所收获,那我写这篇6000多个字的文章也值了。我们总结一下第二篇讲了什么有常量,字符串,转义字符,注释,选择语句,循环语句,函数,数组。我为了更好的去写这篇反复看第二课,不放过任何一个点只为呈现更好的博客利于我们复习,更好的学习,如果对你有些许帮助不妨点个赞,收藏,也算是对我的一种鼓励,如文章哪里有出错啥的麻烦指正,谢谢



