My First Blog

目录

一、自我介绍

二、笔记01

    1.C语言是什么?

    2.编译和链接是什么?

    3.各种编译器的对比,VS的优势是什么?

    4.main函数究竟是啥?

    5.关键字有哪些?

    6.关于字符、ASCII码?

    7.C语言的字符串?字符和字符串有什么区别?

    8.strlen是什么?


一、自我介绍

        Hello!大家好!我是【又菜又爱学的小鱼】,欢迎来到我的C语言打怪升级之旅!我想通过这个博客与你们分享我的学习经验,我的目标是建立一个互动社区,大家一起讨论学术问题、分享学习心得,以及探讨知识的无限可能性!


二、笔记01

    1.C语言是什么?

        C语言其实就是一种计算机语言。人和人交流使用的是自然语言(如:汉语、英语等),而人和计算机是需要通过计算机语言进行交流的。目前已知的有上千种计算机语言,像C++、Java、Python、Go等都是计算机语言。

    2.编译和链接是什么?

        C语言是一门编译型的计算机语言,它的源代码是文本文件 ,本身无法执行,必须通过编译器翻译和链接器的链接,从而生成二进制的可执行文件(计算机只能识别二进制的指令)。每个C语言源文件(.c)单独经过编译器处理生成对应的目标文件(后缀为.obj的文件),多个目标文件和库文件再经过链接器处理得到对应的可执行程序(后缀为.exe的文件)。

    3.各种编译器的对比,VS的优势是什么?

        常见的编译器有:msvc、clang、gcc;也有一些集成开发环境,比如:VS2022、XCode、DevC++、Clion等。

        集成开发环境简称IDE,一般都是将代码编写、分析、编译、调试等功能集成为一体化的开发软件服务套。

  •   VS2022是一个主流的集成开发环境(IDE),企业中使用的较为普遍。虽然安装包大一些,但是安装简单,不需要多余的配置,使用起来非常方便,对初学者友好!
  •   VSCode需要自己搭建C/C++的开发环境,上手成本较高,不推荐初学者使用。
  •   XCode是苹果电脑上的开发工具。
  •   DevC++比较小巧,但是工具过于简单,不利于养成良好的代码风格,但仍有一些竞赛在使用。

    4.main函数究竟是啥?

        main函数(主函数)是程序的入口,C语言程序是从main函数的第一行开始执行的,每个C语言程序不管有多少行代码,都是从main函数开始执行的。

#include <stdio.h>

int main()
{
    printf("Hello C\n");
    return 0;
}

int main()
{
    printf("hahaha\n");
    return 0;
}

  

        main函数有且只能有一个,即使一个项目中有很多个.c文件,但是也只能有一个main函数!(不然计算机就不知道该从哪个入口开始执行啦)

int main()
{

	return 0;
}

        上述代码是C语言中main函数的模板,int表示main函数结束的时候会返回一个整型值,与结尾的return 0;相呼应。

    5.关键字有哪些?

        C语言中有一批保留名字的符号,比如:intifreturn等,这些符号被称为关键字(或保留字)。关键字都有特殊意义,是保留给C语言使用的;自己在创建标识符的时候不能和关键字一样;不可以自己创建关键字。
C 关键词 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/c/keyword

    6.关于字符、ASCII码?

        C语言中字符是用单引号括起来的,在键盘上可以敲出各种字符,比如:'a','b','q','@','#'等。我们给每一个字符编一个二进制序列,这个就叫做编码。为了避免混乱,美国国家标准学会(ANSI)出台了一个标准ASCII编码,C语言中的字符就遵循了ASCII编码的方式。

ASCII 码表 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/cpp/language/ascii

  • 字符 A~Z 的ASCII码值是 65~90
  • 字符 a~z  的ASCII码值是 97~122
  • 小写字符(a)的ASCII码值 - 32 为对应大写字符(A)的ASCII码值
  • 数字字符 0~9 的ASCII码值是 48~57(连续递增的)
  • 注意ASCII码值从0~31这32个字符是不可打印字符,无法在屏幕上显示

    7.C语言的字符串?字符和字符串有什么区别?

        使用双引号(" ")括起来的一串字符就叫做字符串,字符串的打印格式可以用“%s”来指定,也可以直接用"  "表示。

        使用单引号(' ')括起来的是字符,字符的打印格式可以用“%c”来指定。

#include <stdio.h>

int main()
{

    printf("%s\n","abcdef");//打印结果:abcdef
    printf("abcdef");//打印结果:abcdef
    printf("%c\n",'w');//打印结果:w
    printf("%c\n",'a');//打印结果:a

    return 0;
}

    8.strlen是什么?

#include <stdio.h>

int main()
{
	printf("hello world");
	return 0;
}

            在VS2022中,先按Ctrl+F10或者Fn+F10对上述代码进行单步调试

             打开监视1的窗口,如下所示。我们就可以看到字符串"hello world"所包含的字符以及字符串的长度。

          对于该字符串,在末尾还隐藏一个'\0'的转义字符,'\0'是字符串的结束标志。

          字符串也可以存放在数组中,参照下面的代码(同样可以按照上面的方法查看字符串包含的字符以及字符长度)

#include <stdio.h>

int main()
{
	char arr1[] = "hello";//arr1的结尾有\0
	char arr2[] = {'h','e','l','l','o'};//arr2中没有\0

	printf("%s\n",arr1);
	printf("%s\n", arr2);

	return 0;
}

            运行结果如下,由于'\0'是字符串的结束标志,但arr2数组中不包含'\0',所以它会继续往后执行,直到遇见'\0'才会停下。

            strlen是一个函数,用于输出字符串结尾标志\0之前的字符长度(或者说是字符个数),使用该函数的头文件为string.h,strlen 返回的值是size_t类型的,所以输出时格式应该使用%zd

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

int main()
{
	char arr1[] = "hello";
	char arr2[] = { 'h','e','l','l','o'};
	printf("%zd\n",strlen(arr1));//5
	printf("%zd\n",strlen(arr2));//?
	return 0;
}

             上述代码中,数组arr1的字符长度为5;而数组arr2的字符长度是随机的,因为它没有'\0',但是到后面总会遇到'\0'的,所以会在一个随机的地方停下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值