C语言基础知识大全(3)

2019-01-05 11:10

1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 指针法:

可以通过行指针来引用二维数组元素。

定义行指针变量:int (*p)[3],指针p是指向一个由3个元素所组成的整型数组指针。 例如: void main() {

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} int (*p)[4]=a;

for(int i=0;i<3;i++) {

for(int j=0;i<4;j++) printf(“%d\\t”,p[i][j]); printf(“\\n”); } }

参考书目:

1. 2.

C++语言程序设计教程与实验(第二版) 温秀梅 丁学钧 李建华主编 C/C++程序设计教程 张世民主编

8. 字符数组

1) 字符数组的定义与赋值

字符数组是一串字符的集合,其数组元素为字符型。 字符数组的赋值形式:

char 数组名[常量表达式]=“字符串”; 或 char 数组名[常量表达式]={“字符串”}; 例:char sz_A[5]={?s?, ?t?, ?u?, ?d?, ?y?, };

定义数组sz_A,包含5个元素,其在内存中的存放情况为: sz_A[0] sz_A[1] sz_A[2] sz_A[3] sz_A[4]

s t u d y 则各元素赋值如下: sz_A[0]=?s?; sz_A[1]=?t?; sz_A[2]=?u?; sz_A[3]=?d?;sz_A[4] =?y? 如果花括号中的字符个数大于数组长度,编译系统就会报错,如果花括号中的字符个数小于数组长度,其余元素则由系统自动定义为空字符,即‘\\0’。

?\\0?作为字符串的结束标志,因此在定义数组长度时,应在字符串原有的长度上加1,为字符串结束标志预留空间。

例:char sz_A[6]={?s?, ?t?, ?u?, ?d?, ?y?, };

定义数组sz_A,包含6个元素,其在内存中的存放情况为: sz_A[0] sz_A[1] sz_A[2] sz_A[3] sz_A[4] sz_A[5]

s t u d y \\0 则各元素赋值如下: sz_A[0]=?s?; sz_A[1]=?t?; sz_A[2]=?u? sz_A[3]=?d?; sz_A[4]=?y?; sz_A[5]=?\\0?

【例3】分析程序的运行结果 源程序如下:

#include void main() {

char sz_A[10]=\int i;

for(i=0;i<9;i++) printf(\}

运行结果:

work hard

以上实例中,逐个显示字符数组的各个元素,但需注意的是在定义字符数组的下标时,至少比后面的字符串长度大1。其中,字符串长度应包括其中空格的长度。

2) 字符串操作函数:

a) 字符串复制函数strcpy()

格式:strcpy(字符数组1,字符数组2)

功能:是将字符数组2中字符串复制到字符数组1中去。

注:字符数组1的长度必须大于字符数组2,从而能够容纳复制的字符数组2的字符串;字符数组1必须写成数组名形式,字符数组2既可以是字符数组名,也可以是字符串;字符数组之间不能相互赋值。 例如:char sz_str1[10],sz_str2[6]=\

Strcpy(sz_str1,sz_str2); printf(\

运行结果:

work hard

b) 字符串连接函数strcat()

strcat(字符数组1,字符数组2)

功能:将字符数组1和字符数组2中的字符串连接起来,字符数组2中的字符串2接到字符数组1中的字符串后面。

注:字符数组1的长度必须足够大,能够同时容纳字符数组1中的字符串和字符数组2中的字符串。

字符数组名2中的字符串连接到字符数组1的字符串时,删除字符数组1中的字符串后面的标志‘\\0’,只在新串的最后保留“\\0”。 例如:char sz_str1[10]=\

strcat(sz_str1,sz_str2); printf(\

运行结果:

workhard

c) 字符串比较函数strcmp()

strcmp(字符数组1,字符数组2)

功能:比较字符数组1和字符数组2中字符串,通过函数返回值得出比较结果。

若字符数组1中的字符串<若字符数组1中的字符串,函数返回值<0; 若字符数组1中的字符串>若字符数组1中的字符串,函数返回值>0; 若字符数组1中的字符串=若字符数组1中的字符串,函数返回值=0;

注:比较规则:比较过程中,按照从左到右的顺序,逐个比较字符的ASCII码值,直到遇到不相同的字符或“\\0”,即结束比较。 例如:char sz_str1[10]=\

if (strcmp(sz_str1,sz_str2)>0)

{

printf(\大于\\n\}

if (strcmp(sz_str1,sz_str2)<0) {

printf(\小于\\n\}

if (strcmp(sz_str1,sz_str2)==0) printf(\相等\\n\

运行结果: 大于

d) sprintf()

sprintf(s,”%s%d%c”,”text”,1,?char?);

将输出结果写入数组S中;其函数返回值为字符串长度,相当于strlen;计算长度时不计算“\\0”,而sizeof计算时是加上“\\0”的。 例如:

char sz_str;

sprintf(sz_str,\i_Tmp=sprintf(sz_str,\printf(\结果输出:%s\\n\printf(\函数返回值输出:%d\\n\

e) sscanf()

sscanf(s,”%d%f%s”,&a,&b,&c);

从一个字符串中读进与指定格式相同的数据;其返回值为读入有效数据的个数;从数组S中,以固定格式向a,b,c输入,sscanf不识别空格。

char sz_str[11]=\char sz_str1[11];

sscanf(sz_str,\ i_Tmp=sscanf(sz_str,\ printf(\输出结果:%s\\n\

printf(\函数返回值:%d\\n\运行结果:

输出结果:work sscanf函数返回值:1

9. 全局变量与局部变量的定义和区别

变量的作用域指变量所起的作用范围,变量的定义位置决定了变量的作用域,它可分为全局变量和局部变量。 1) 全局变量

全局变量是指在函数外部定义的变量,它不属于哪一个函数,它属于一个源程序文件,它的作用范围从定义变量定义的位置开始到本源文件的结束。在函数中使用全局变量,一般应做全局变量声明。只有在函数内部经过声明的全局变量才能使用。但在一个函数之前定义全局变量,在该函数内使用可不加以声明。

全局变量的作用是增加函数间数据联系的渠道。同一个文件中的所有函数都能引用全局变量的值,当一个函数改变了全局变量的值,就会影响到其它函数,有利于函数之间信息的传递。 2) 局部变量

在函数中或者复合语句中定义的变量称为局部变量,它的作用范围只限于该函数或者该复合语句中,在其它位置无效。

如果全局变量和局部变量重名,在定义局部变量中的子程序中局部变量起作用,全局变量失效。

程序在编译过程中,系统并不会为局部变量分配存储单元,而在程序的运行过程中,当局部变量所在函数被调用时,系统才会为变量分配临时内存,函数调用结束后,释放空间。 3) 全局变量和局部变量的区别

1 全局变量的有效范围从定义该变量的位置开始到本源文件的结束,局部变量只在定义该变量的函数中有效,在函数外部无效。

2局部变量是程序运行到该函数时给变量分配内存空间,函数运行结束后释放空间,全局变量在程序运行时先分配内存空间,直到本源文件执行完以后释放空间。 4) 程序实例

#include \ int x=6,y=8; void plus() { }

void main() {

printf(\,x,y); x++; y++;

}

void plus(); int x=2,y; x=2,y=3;

printf(\,x,y); plus();

printf(\,x,y); plus();

参考书目:

1.《C 语言程序设计》作者 张书云 姜淑菊 朱雷 P89-P91

10. 文件操作以处理

1) FILE类型

文件:存储在外部介质上数据的集合。声明FILE结构体类型的信息须声明#inclu议案不能定义指向FILE类型变量的 指针变量FILE *fp; 2) fopen函数

调用方式:fopen(文件名,使用文件方式),文件打开成功则返回一个FILE类型指针,否则返回NULL。

表 10-1文件打开方式

文件使用方式 “r”(只读) “w” (只写) “a” (追加) “rb” (只读) “wb” (只写) “ab” (追加) “r+” (读写) “w+” (读写) “a+” (读写) “rb+” (读写) “wb+” (读写) “ab+” (读写) 含义 为输入打开一个文本文件 为输出打开一个文本文件 向文本文件尾部增加数据 为输入打开一个二进制文件 为输入打开一个二进制文件 向二进制文件尾增加数据 为读/写打开一个文本文件 为读/写建立一个新的文本文件 为读/写打开一个文本文件 为读/写打开一个二进制文件 为读/写建立一个新的二进制文件 为读/写打开一个二进制文件


C语言基础知识大全(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:多聚A特异性核糖核酸酶(PARN)ELISA试剂盒说明书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: