编程技术是改变世界的力量。
本站
当前位置:网站首页 > 后端语言 > 正文

C语言的这些元素你都知道吗?(c语言的这些元素你都知道吗怎么写)

gowuye 2024-04-25 04:41 8 浏览 0 评论

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

1.C语言的数据类型

基本类型

a.整型:

整型 int Visual c++6.0 中占4 个字节; Turbo c 2.0占 2个字节

短整型 short int 2个字节

长整型 long int 4个字节

无符号短整型 unsigned short int 2个字节

无符号长整型 unsigned long int 4个字节

b.字符型:

char

c.实型:

单精度 float 占4个字节,32位。

双精度 double 占8位字节,64位

构造类型

a.数组 array

b.结构体 struct

c.共用体 union

指针类型 *

空类型 void

2.逻辑运算

!(非) ,&&(与), ||(或)

3二维数组

定义: 类型说明符 数组名[常量表达式1][常量表达式2]

注:a.存储器单元是一维线性排列的。是按行存放的。

b.对于全部元素赋初值,则数组第一维的长度可以省略,但是第二维不能省。

如:int a[][3]= {1,2,3,4,5,6}

c.可以只对部分元素赋初值,没赋初值的元素自动取0值。

d.一个二维数组可以分解为一个多个一维数组。例:a[3][4]可分解为三个一维数组,其数组名分别为a[0],a[1],a[2],而这个一维数组都有4个元素。如一维数组a[0]有元素为:a[0][0],a[0][1],a[0][2],a[0][3]

4.字符数组

c中没有字符串数据类型,是用字符数组来表示字符串变量的。字符串总是以'\0'作为串结束符,所以,字符串就是一种以‘\0’结束的字符数组。 常用的字符串处理函数(在stdio.h中与string.h中):

puts(字符数组名)---把字符数组中的字符串输出到显示器。

gets(字符串数组名)--从输入设备得到字符串。

strcat(字符数组名1,字符数组名2)--把字符数组中2中的字符串连接到字符数组1中字符串的后面,并删除字符串1后的串标志"\0";

strcpy(字符数组名1,字符数组名2)--把字符数组2中的字符串复制到字符数组1中,串结束标识'\0'也一同复制。

strcmp(字符数组名1,字符数组名2)--按照ASCII码顺序比较两个数组中的字符串,并由函数返回比较结果。

strlen(字符数组名)---返回字符实际长度(不含字符'\0')

5.函数

对于被调用函数的声明和函数一般形式:类型说明符 被调函数名(类型,类型,..); 注:如果被调用函数的返回值是整型或字符型时,可以不对被调用函数作说明而直接调用。

如果被调用函数定义出现在主调用函数之前,在主函数可以不对被调用函数作说明而直接调用。

6.变量的作用域及存储特性

a.局部变量:又称内部变量。在函数内作定义说明,其作用域仅限于函数内。

b.全局变量:又称外部变量,它是在函数外部定义的变量。它不属于哪一个函数,而属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数中经过说明的全局变量才能使用,说明符为:extern.但是在一个函数之前定义的全局变量,在该函数内可以再加以说明。 变量的存储特性:

a.auto(自动变量)默认。为动态存储,既只有在使用它才分配存储单元,开始它的生命周期。

b.extern(外部变量) 为静态存储,外部变量等同与全局变量。当一个源程序由若干个源文件组成时,在一个源文件中定义的外部变量在其它的源文件中也有效。

c.static(静态变量) 为静态存储方式,可分为静态局变量和静态全局变量。 静态局变量:在局部变量的说明前再加上static说明。

d.寄存器变量(register).当一个变量反复访问时,就可将此变量声明为

register。放在cpu的寄存器中。别注:只有局部自变量和形式参数才能定义为寄存器变量。使用个数很有限。对于Truboc 、MS C等使用是按自动变量处理的。

7.内部函数和外部函数

内部函数--一个只能被本文件中的其他函数所调用的函数。形式:static 类型 函数名(形参表)

外部函数---如果在函数标识符前面加上extern,形式:extern int fun(int a,int b) 其中,extern为默认。

8.指针变量声明

[存储类型] 类型标识符 *指针变量名;

存储类型] 类型标识符 *指针变量名=变量地址;(注:int *p; 表示:变量p表示指针变量;另外P可用来存放整数变量的地址。指针变量本身存储的都是地址,每个指针(地址)占4个字节(在VC中),例:char *p, size(p)为==4 );

9.指针运算

a.指针赋值: 如:int x; int *p=&x; 也可在程序中对其初始化:int x,*p; .. p=&x

注意:在没赋初值时,指针变量的内容是不确定的。如果此时引用指针指向的变量,将会产生不可预料的后果。 如:int *p; *p=100; //错误,p没有初始化。

b.指针的加减:指针变量加1不能是简单的地址加1,加上一sizof(指针变量所指类型)。

10.宏

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。

#define命令剖析

#define的概念

#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。

该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。

简单的宏定义:

#define <宏名> <字符串>

带参数的宏定义

#define <宏名> (<参数表>) <宏体>

一个标识符被宏定义后,该标识符便是一个宏名。这时,在程序中出现的是宏名,在该程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,宏替换是简单的替换。

这是今天的内容,希望大家有所收获,学有所成,写出属于自己的程序!!!

如果对这方面有兴趣的可以加群:233026065,大家一起学习交流。

群内还有更多学习资料、视频,免费课......

相关推荐

Nginx 响应提速10倍,你需要知道的缓存性能优化——FastCGI调优
Nginx 响应提速10倍,你需要知道的缓存性能优化——FastCGI调优

Nginx缓存优化是帮助大家提升网站性能的重要操作之一,proxy_cache主要用于反向代理时,对后端内容源服务器进行缓存;fastcgi_cache主要用于...

2024-05-20 14:44 gowuye

王者荣耀天魔缭乱和逐梦之音返场活动地址 3月22日开启返场活动
王者荣耀天魔缭乱和逐梦之音返场活动地址 3月22日开启返场活动

王者荣耀官方终于确定了天魔缭乱和逐梦之音的返场活动,这让不少小伙伴乐开了花,返场活动将会在3月22日开启,下面就带来王者荣耀天魔缭乱和逐梦之音返场活动地址!王者...

2024-05-20 14:44 gowuye

常见的嵌入式web服务器有哪些?

嵌入式WEB服务器常见的有:Lighttpd,Shttpd,Thttpd,Boa,Mini_httpd,Appweb,Goahead。Lighttpd地址:http://www.light...

简述几款常见的嵌入式web服务器
简述几款常见的嵌入式web服务器

嵌入式web服务器,是web服务器当中的一种,是基于嵌入式系统而实现的web服务器。指的是在嵌入式系统(通俗点就是单片机系统)上实现的一个web服务器,可以通过...

2024-05-20 14:44 gowuye

教你如何利用fastcgi_cache缓存加速WordPress

在使用nginx缓存之前,必须在nginx里面加载专门的模块,这个模块叫做ngx_cache_purge。添加ngx_cache_purge模块下载ngx_cache_purge模块ngx_cache...

扫描WordPress漏洞

检测已知漏洞WPScan是一款广泛使用的WordPress安全扫描工具,它的一项重要功能是检测已知漏洞。在这篇文章中,我们将深入探讨WPScan如何检测已知漏洞,并结合实际示例,帮助读者更好地理解和应...

消灭 Bug!推荐几个给力的开源 Bug 跟踪工具
消灭 Bug!推荐几个给力的开源 Bug 跟踪工具

在这个充满bug的世界里,最遥远的距离不是生与死,而是你亲手制造的bug就在你眼前,你却怎么都找不到它。因此本文准备了7款优秀的开源bug跟踪系...

2024-05-20 14:43 gowuye

生物信息分析入门全攻略

生物信息学是生命科学研究的重大前沿领域,未来将占据生命科学研究的半壁江山。已经有越来越多的小伙伴投入到生物信息的学习中,但是入门难、深入慢、摸不到方向等都成为持续学习的拦路虎。本文根据生物信息技术大牛...

elkb实践经验,再赠送一套复杂的配置文件
elkb实践经验,再赠送一套复杂的配置文件

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。宝剑锋从磨砺出,梅花香自苦寒来。诗人白居易,三月下江南,看到沿路开放的桃花,心潮澎湃...

2024-05-20 14:43 gowuye

超详细从0到1 搭建ELK监控
超详细从0到1 搭建ELK监控

监控分类?Metrics用于记录可聚合的数据。例如,1、队列的当前深度可被定义为一个度量值,在元素入队或出队时被更新;HTTP请求个数可被定义为一个计数器,...

2024-05-20 14:42 gowuye

嵌入式开发 之Web配置页面开发
嵌入式开发 之Web配置页面开发

1.PHP是最好的语言??开发动态页面首选的语言是PHP,村村不能在这里忽悠人,如果你的硬件性能允许切略懂PHP,看到这里就可以退出了。本文面向的受众是Linu...

2024-05-20 14:42 gowuye

Python开发一个网站目录扫描工具用来检测网站是否有漏洞?
Python开发一个网站目录扫描工具用来检测网站是否有漏洞?

开发一个网站目录扫描工具是用来检测网站是否有非法目录请求的一个常见需求之一,我们要通过这个扫描工具来找到通过某个域名可以访问到的网站路径,可能对于有些系统来讲,...

2024-05-20 14:42 gowuye

创建一个类似Youtube的Id——使用PHP/Python/JS/Java/SQL

id通常都是用数字,不巧的是只有10个数字来使用,所以如果你有很多的记录,id往往变得非常冗长。当然对于计算机来说无所谓,但我们更希望id尽可能短。所以我们如何能使id变短?我们可以利用字母让它们附加...

快速云:有助于移动应用安全开发的五条妙计
快速云:有助于移动应用安全开发的五条妙计

许多企业不断地向其开发团队提供培训。但是某些漏洞,如早在十多年前就发现的SQL注入,如今仍广泛存在于各种应用中。因而,安全培训永不过时。在开发移动应用时,开发者...

2024-05-20 14:41 gowuye

洛杉矶国际电影节最佳动画短片奖影片《G’DAY》正式全网上映
洛杉矶国际电影节最佳动画短片奖影片《G’DAY》正式全网上映

7月2日,由M&CSaatchi创作,由深受好评的澳大利亚导演迈克尔·格雷西执导的动画短片《G’day》,正式在全网上映。该影片因其出色的创意赢得了洛...

2024-05-20 14:41 gowuye

取消回复欢迎 发表评论: