初识c语言2,入门篇


前言

家人们第二篇来了,距离第一篇5天时间,这五天,我天天追课,没时间写,让爱学习的你我久等了实在抱歉,我也尝到了一直追课的苦头,就是不对当时学到的东西进行总结,很快就忘了,希望家人们不要学我,闲话不多说,开始我们的学习吧,这一篇内容过多,建议家人们想了解那个点,直接点文章目录可以跳到对应的知识点


提示:以下是本篇文章正文内容,下面案例可供参考

一、变量和常量(常量)

生活中我们有可变的值和不变的值,可变的值就是变量
不变的值就是常量如:身份证,性别

1.变量( 初始c语言1

2.常量(四种)

2.1、字面常量

字面常量就是从字面上看出来就是这个值

#include<stdio.h>
int main(){
	//字面常量整数30不会变30就是30
	30
	3.14//小数
	'w'//字符
	"abc"//字符串
}

2.2、const修饰的常变量

在这里插入图片描述

从左边的运行中可以看出变量a可以正常运行,但如果加了const关键字,再去赋值就报错了;是因为加了const就有了常量的属性,而常量不能直接修改

2.3#define定义的标识符常量

在这里插入图片描述
左边为报错的代码在第13行报错,是因为当#define定义的标识符常量MAX有了值后,我们在去赋值,使其值发生改变,就会报错,因为常量是不能修改值的
右边为能正常运行的值,在第12行定义变量a去储存MAX没有改变MAX的值**是可以正常运行的

注意:这变define定义的标识符一般是大写,小写也可以

2.4枚举常量

现在我们是初始c语言,所以简单的来了解一下,生活中有很多东西是一一列举的如颜色
在这里插入图片描述

注意:enum是枚举常量关键字

二、字符串+转义字符+注释

1、字符串

1.1什么是字符串?

“abc\n”

这种由“”双引号包括起来的一堆字符叫做字符串

1.2 打印输出字符串

  • 那我们怎么去打印实现他呢?
char ch="abc"   //错,不能用字符类型去定义字符串,字符串没有数据类型
printf("%s",ch);

我们可以把他放在数组里就可以打印了,有两种形式:

#include<stdio.h>
int 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
那这两种有什么区别呢?注意字符串都是以 \0 为结束标志的,
第一种形式‘’abc”是有四个空间的因为字符串后面有跟 \0 作为结束标志,所以我第一种形式有四个空间,[ ]里面填4
第二种形式他是以一个一个字符打印,而字符没有结束标志 \0 ,所以他占3个空间,而没有结束标志的话他会打印乱码,所以我们[ ]这里得填4使他只有在第4个空间结束,
如果[ ]括号里面填小于或等于他字符串个数的话,他会乱码,如图
在这里插入图片描述
当然我们[ ]里可以不填,让编译器帮我们判断字符串大小,第一种形式可以正常打印因为他默认 \0 结束,而第二种形式不行,因为字符没有 \0 ,必须加上 \0 ,才能正常打印,如图
在这里插入图片描述

1.3求字符串长度

为了更好的体现\0的重要性,我们需要知道一下两种形式下的字符串长度,
求一个字符长度要用到strlen函数,他的头文件要用string.h

//使用printf库函数要用到头文件stdio.h
#include<stdio.h>
//使用strlen库函数时要用到头文件string
#include<string.h>
int main() {
    char arr1[] = "abc";//第一种形式
    char arr2[] = {'a','b','c'};//第二种形式
    //输出打印字符串长度
    printf("%d\n",strlen(arr1));
    printf("%d\n",strlen(arr2));
    return 0;
}

运行结果:
3不知道

为什么第二种形式会字符长度打印出来是42呢,因为他后面没有跟 \0 ,而 \0 是结束标志,程序走起来的时候找到c这个字符后会一直查找,直到找到 \0 为止,
如果我们要得到正确的字符长度得在字符 ‘c’ 后面加上 \0 ,此时他就会数到第三个停止查找,打印打印字符串长度,如下

char arr2[]={'a','b','c','\0'};
printf ("%d",strlen(arr2));

运行结果:
3

从上面几个列子中我们清晰的认识到了 \0 的重要性
注意:strlen在测量字符长度时不算上结束标志 \0

2、转义字符

顾名思义转义字符就是转变字符意思
有哪些呢
在这里插入图片描述
转义字符有以上这几种,有打钩的是需要记住,认识的

1.1 ?(防止被打印成三字母词)

printf("%s\n", "(are you ok??)")
//输出打印的结果是:are you ok]

与我们想打印的内容不符,因为,他连续使用了多个问号被编译器认为是三字母词,我们如果要正确打印想要的内容必须在 ?前面加 \ 转变他的意思,如下

//在?前面加\让他就是个问号,防止转化为三字母词
printf("%s\n", "(are you ok\?\?)");

注意三字母词这个语法在是古老的语法目前只有vc6.0这个编译器才会出现,vs是可以正常打印的,这个语法我们简单的了解一下

1.2. '(字符常量)

如果我们要打印一个字符单引号 ‘ ’ ’ 怎么办呢?直接输出打印?不行他会报错,因为他会把前两个和一起,那怎么正确打印很简单在他前面加 \ 就行
如下:

printf("%c", ' \'');

运行如图:
在这里插入图片描述

1.3. \t(水平制表符)

相当于你键盘敲Tab键一样的效果,输出内容空四格,如图:
在这里插入图片描述
如果你想打印正确全部,不想 t 被转变意思很简单在 t 前面加个转义符 \ 就好

1.4. \ddd(表示1~3个八进制数字)

这个3位八进制数字在编译器中会转换成对应2位十进制数字,以对应ASCII码词打印出来,比如我们这边打印八进制 130 如图:
在这里插入图片描述
注:十进制88对应ACSII中的字符X

1.5. \xdd(表示2个十六进制数)

2位十六进制数会转换成2十进制数,以对应的ACSII码词打印出来,比如 x63 这个十六进制数,如图:
在这里插入图片描述
总结:如果我们不想让他转变意思直接在其前面加个 \ 就行

3.注释(//)

我们代码都可以用 // 这个符号来注释我们代码的意思,而注释有以下三个好处
在这里插入图片描述

三、选择语句(if 和else)

选择语句 if 和 else是对应的语句,也可以成为判断语句,比如:如果我不好好更博客总结就是差生,如果我好好总结就是大牛,这就是选择。
那代码怎么去实现他呢

#include<stdio.h>
int main()
{
	int a = 0;//a初始化
	printf("要好好写博客总结吗(1/0)?");
	scanf("%d", &a);//输入一个值
	
	//判断你输入的数,如果是1则大牛
	if (a == 1)
	{
		printf("大牛\n");
	}
	//否则就是差生
	else
    {
		printf("差生\n");
	}
	return 0;
}

输入1运行结果如图:
在这里插入图片描述

四、循环语句(while、for 、 do…while )

因为是初识别C语言我们先认识 while 循环,for和do…while后面讲
比如我好好刷题,刷大于20000道题,就成为大牛,我刷题小于或等于20000题就继续努力刷题。
怎么去实现他呢?这时就可以用循环来遍历他?再用选择语句来判断是否大于或小于等于20000,

#include<stdio.h>

int 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 这就是个函数,正常我们求两个数的可以这么求

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	//输入两个数
	scanf("%d %d", &a, &b);
	//表达式
	int c = a + b;
	//输出
	printf("%d\n", c);
	return 0;
}

使用函数求法,如下

#include<stdio.h>

int 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("%d\n", sum);
	
	return 0;
}

函数名add 相当于加工厂,而n1,n2则相当于原材料,我在主函数大括号里{}放了原材料n1,n2然后拿去函数add加工最后输出。这样有个好处就是便可以定义新的材料拿去给函数加工,一定程度上实现了代码复用,简化了代码

下面让献上我们函数的结构让我们能更好的理解:
在这里插入图片描述

六、数组(一组相同类型的集合)

6.1.多个相同类型值储存,如十个整数

比如我们怎么去储存十个数值呢,一个个去定义储存显然不现实,所以我们要到数组
如:

int main()
{	
	//储存1~10的数
	int arr[10]={1,2,3,4,5,6,7,8,9,10};
}

6.2.打印是十个数中的某个数

比如如我们要打印上面的6,怎么打印呢,如:

#include<stdio.h>
int 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("%d\n",arr[5]);
	
	return 0;
}

我们要用到数组里的值时,都是访问数组下标的,数组下标从0开始数

6.3。打印数组所以值

我们怎么去打印上面的十个数值呢,这时就需要用到循环,去遍历输出他

#include<stdio.h>
int 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多个字的文章也值了。我们总结一下第二篇讲了什么有常量,字符串,转义字符,注释,选择语句,循环语句,函数,数组。我为了更好的去写这篇反复看第二课,不放过任何一个点只为呈现更好的博客利于我们复习,更好的学习,如果对你有些许帮助不妨点个赞,收藏,也算是对我的一种鼓励,如文章哪里有出错啥的麻烦指正,谢谢

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

果粒.橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值