优秀的编程知识分享平台

网站首页 > 技术文章 正文

C语言的这些元素你都知道吗?(c语言的基本组成元素)

nanyue 2024-08-25 10:36:47 技术文章 11 ℃

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,大家一起学习交流。

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

Tags:

最近发表
标签列表