草庐IT

初步了解c语言(一)

June-Frost 2023-10-03 原文

注意: 此部分为初步了解!

目录:

简单了解c语言

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。


📙计算机编程语言:

  人和计算机交流的语言。目前已经有上千种计算机语言,c语言其实就是众多计算机语言中的一种。

📙底层开发:

  


c语言更擅长底层的开发。


二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

📙一点了解
c语言的标准有c89, c90, c99 ,c11 ,c17…每一种都可能有新的标准,新的特性,但是c89,c90是用的最多的语法特性。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

第一个C语言程序

📙
流程:

  1. 创建一个项目
  2. 创建.c文件
  3. 写代码

注意:

  1. 名称中不要使用中文,不要使用特殊字符,不要使用空格。
  2. 要根据需求安排代码存放路径,将代码管理起来。

📗例如: 写一个c语言程序,将Helllo World 打印在屏幕上。

#include<stdio.h>
int main()
{
	printf("Hello World\n");
	return 0;
}

写好的c语言代码该如何运行呢?
  写好的c语言代码是文本信息,不可以直接运行。

我们所使用的编译器,例如vs2022,是集成开发环境,拥有编辑,编译,链接,运行,调试等功能。


🌟接下来,将会对上述代码进行详细解释。
1.代码一般是从main函数开始写。
main函数的标准写法:

int main()
{
	return 0;
}

  int 与return 0 是前后呼应的,因为返回的是0,0是整形,所以返回类型是int。

2.main函数的功能:c语言中main函数是程序的入口,程序是从main函数的第一行开始执行的,而且main函数有且只有一个

3.printf是一个库函数,由c语言编译器提供的一个现有函数,可以直接使用,其功能就是在屏幕上打印数据,使用库函数之前需要包含头文件 stdio.h。

4.由双引号引起来的就是字符串,例如:”Hello World“ 就是一个字符串。

5.\n 表示换行。


探讨main函数的四种方式

第一种:

int main()
{
	return 0;
}

这种方式写起来最简单方便。
第二种:

void main()
{

}

这种写法太过于古老,不推荐使用。
第三种:

int main(void)
{

	return 0;
}

这里的void表示main函数不接受任何参数。
第四种:

int main(int argc , char*argv[])
{
	return 0;
}

数据类型

  编程是为了解决实际问题,有问题就有数据,而类型就可以说明是怎样的一个数据。

此外在c99标准中还引入了_Bool 布尔类型 ,long double 等类型。


类型的大小:

当内存要存储一个数据,需要开辟一块空间,例如要存储一个10 , 需要一个整形空间,存储一个10.5,需要一个浮点型空间。这些空间是有大小的,我们可以通过代码讨论这个问题。

#include<stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

📙 sizeof 是一个操作符,是计算 类型/变量 所占内存空间的大小。
结果:

📙单位是字节。
⭐️计算机中的单位:


💫 对bit的解释:
计算机识别的是二进制,即1或0,当存1或者0所需要的空间就是1个bit。
💫对ing是4 long也是4的解释:
c语言标准规定,sizeof(long)>=sizeof(int) ,是可以等于的。


类型的使用:
例如: char ch = ’w‘ ;
  用类型创建一个变量,通过变量向内存申请一块空间,该空间大小就是类型的大小。

注意 : 其实字符 w 是按照 ASCLL 码值存储 ------- 以后会详细介绍。


常量和变量

  生活中有不变的值,例如性别。也有变化的值,例如年龄。在c语言中,用常量表示不变的值,用变量表示变化的值。

定义变量的方法

语法形式:

  • 类型 变量名
  • 类型 变量名 = 初始值;

例如:
int age1;
int age2 = 18;
注意:55.5 这种小数直接写出来,编译器会默认为double类型, 所以要加个f,55.5f就是float类型。
float weight = 55.5f;

变量的命名:

  • 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
  • 不能以数字开头。
  • 长度不能超过63个字符。
  • 变量名中区分大小写的。
  • 变量名不能使用关键字。

💖变量是可变的。
例如:

#include<stdio.h>
int main()
{
	int num = 10;
	printf("%d\n", num);
	num = 20;
	printf("%d\n", num);
	return 0;
}


变量的分类

  1. 局部变量
  2. 全局变量

例如:

#include<stdio.h>
int num1 = 100;//全局变量
int main()
{
	int num2 = 10;//局部变量
	
	return 0;
}

💖说明:
在大括号内部(函数体)的即为局部变量,在外部定义的变量为全局变量。
注意:
💓注意:
原则上,变量名尽量不要冲突。但是,当局部变量和全局变量名称一样,冲突的情况下局部变量优先。


💞结尾

之后的内容,本小白会持续更新,刚开始写博客,有不足的地方还请各位大佬多多指正,非常感谢!

有关初步了解c语言(一)的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  5. ruby - 了解在 Ruby 中与 lambda 一起使用的 inject 行为 - 2

    我经常将预配置的lambda插入可枚举的方法中,例如“map”、“select”等。但是“注入(inject)”的行为似乎有所不同。例如与mult4=lambda{|item|item*4}然后(5..10).map&mult4给我[20,24,28,32,36,40]但是,如果我制作一个2参数lambda用于像这样的注入(inject),multL=lambda{|product,n|product*n}我想说(5..10).inject(2)&multL因为“inject”有一个可选的单个初始值参数,但这给了我......irb(main):027:0>(5..10).inject

  6. ruby-on-rails - 如何测试自己对 Ruby/ROR 的了解? - 2

    是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby​​和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T

  7. ruby-on-rails - 了解 "attribute_will_change!"方法 - 2

    我想覆盖store_accessor的getter。可以查到here.代码在这里:#Fileactiverecord/lib/active_record/store.rb,line74defstore_accessor(store_attribute,*keys)keys=keys.flatten_store_accessors_module.module_evaldokeys.eachdo|key|define_method("#{key}=")do|value|write_store_attribute(store_attribute,key,value)enddefine_met

  8. ruby - 如何保持我不常用的编程语言技能 - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我不经常使用ruby​​-通常它加起来相当于每两个月或更长时间编写一次脚本。我的大部分编程都是使用C++进行的,这与ruby​​有很大不同。由于我与ruby​​之间的差距如此之大,我总是忘记语言的基本方面(比如解析文本文件和其他简单的东西)。我想每天练习一些基本的东西,我想知道是否有一些我可以订阅的网站,并且会向我发送当天的Ruby问题或类似的东西。有人知道这样的站点/Internet服务吗?

  9. ruby-on-rails - 如果特定语言环境中缺少翻译,如何配置 i18n 以使用 en 语言环境? - 2

    如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback

  10. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

随机推荐