c 字符串数组_从关键字、数组、函数角度浅谈:C语言的基础知识

38676a6a0352b80dedeb81eca67d557e.png

1.C语言关键字

存储类型:extern static register auto

基本数据类型:int char short long double void float enum unsigned signed

构造数据类型:struct union typedef

结构语句:if switch while for

辅助结构语句:else case break default do return continue goto

其他:volatile const sizeof

2.基本数据类型

整型:int short long char

浮点型:double float

所占空间 有符号数据范围 无符号数据范围

char 1字节 -128————127 0————255

short 2字节 -32768————32767 0————65535

其他存储类型在/usr/include/limits.h文件中查看

ascii表中注意内容:

32 ' ' 空格

48—————57 '0'-------'9'

65—————90 'A'-------'Z'

97—————122 'a'-------'z'

定义变量一般形式

<存储类型> <数据类型> <变量名>;

变量名:符合标识符的定义规则

由字母、数字、下划线组成

不能以数字开头

不能关键字相同

3.运算符

算术运算符

+ - * % ++ --

++ ++在前,先自加,后运算 ++在后,先运算,后自加

-- --在前,先自减,后运算 --在后,先运算,后自减

关系运算符

> >= < <= == !=

逻辑运算符

&& || !

&& 当&&运算符前面表达式不成立时,后面表达式不做判断

|| 当||运算符前面表达式成立时,后面表达式不做判断

赋值运算符与赋值复合运算符

=

+= -= *= = %=

逗号运算符

(表达式1,......,表达式n)

整个表达式的值为最后一个逗号后面表达式的值,前面表达式的值参与运算

a=100,b= 200;

c = (a++,b++,a+10);

条件运算符

<表达式1> ? <表达式2> : <表达式3>

sizeof运算符

sizeof既是关键字,也是运算符

4.C语言结构

选择结构

if——else

普通:

if(表达式)

语句块1;

else

语句块2;

并列:

if(表达式1)

语句块1;

else if(表达式2)

语句块2;

else if(表达式3)

语句块3;

else

语句块4;

嵌套:

if(表达式)

if(表达式)

语句块1;

else

语句块2;

else

if(表达式)

语句块3;

else

语句块4;

switch————case

switch (表达式)

{

case 常量表达式1:语句块1;break;

case 常量表达式2:语句块2; break;

….

case 常量表达式n:语句块n; break;

default :语句块n+1

}

循环结构

while(表达式)

{

语句块;

}

判断表达式是否成立,若成立,执行语句块,并继续判断表达式;若不成立,跳过循环语句,执行下面语句块

for(表达式1;表达式2;表达式3)

{

语句块

}

首先执行表达式1

判断表达式2是否成立,若成立,执行语句块

执行表达式3,判断表达式2

5.数组:

定义:数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素。

数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。

一维数组:

定义:所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。

一维数组的说明一般形式如下:

<存储类型> <数据类型 > <数组名>[<表达式>] ;

数组名:数组名表示数组所占内存首地址,是地址常量

计算数组大小:

内存字节数=数组维数*sizeof(元素数据类型)

内存字节数=sizeof(数组名)

数组初始化:

数组不初始化,其元素值为随机数

对static数组元素不赋初值,系统会自动赋以0值

只给部分数组元素赋初值,其他元素自动初始化为0

当全部数组元素赋初值时,可不指定数组长度

冒泡排序

排序过程:

(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上

(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置

(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束

6.指针:

地址:在计算机内部存储器(简称内存)中,每一个字节单元,都有一个编号,称为地址

指针:内存单元的地址称为指针

指针变量:专门用来存放地址的变量

一般形式如下:

<存储类型> <数据类型> *<指针变量名> ;

例如,char *pName ;

指针的存储类型是指针变量本身的存储类型。

指针说明时指定的数据类型不是指针变量本身的数据类型,而是指针目标的数据类型。简称为指针的数据类型。

具有相同存储类型和数据类型的指针可以在一个说明语句中说明。

&与*运算符

&含义: 取变量的地址

*含义: 取指针所指向变量的内容

直接访问与间接访问

直接访问:按变量地址存取变量值

间接访问:通过存放变量地址的变量去访问变量

7.字符串

特殊的字符数组,以字符'0'(ASCII值为0)作为结束标志

gets函数

函数原型:char *gets(char *s);

头文件:#include <stdio.h>

函数功能:从终端获取输入的字符串

函数传参:s获取字符串的首地址

函数返回值:获取字符串的首地址

puts函数

函数原型:int puts(const char *s);

头文件:#include <stdio.h>

函数功能:将字符串内容打印到终端上

函数传参:s输出字符串的首地址

函数返回值:从终端上实际获取到的字节数(包括结束标志'0')

strlen函数

函数原型:size_t strlen(const char *s);

头文件:#include <string.h>

函数功能:计算字符串中字符个数(不包括结束标志'0')

函数传参:s字符串首地址

函数返回值:字符串中实际元素个数

strcpy

函数原型:char *strcpy(char *dest, const char *src);

头文件:#include <string.h>

函数功能:将字符串src中的内容拷贝到dest字符串中

函数传参:dest目标字符串,src源字符串

函数返回值:返回目标字符串的首地址

strcat函数

函数原型:char *strcat(char *dest, const char *src);

头文件:#include <string.h>

函数功能:将字符串src中的内容拼接到dest字符串中

函数传参:dest目标字符串,src源字符串

函数返回值:返回目标字符串的首地址

strcmp函数

函数原型:int strcmp(const char *s1, const char *s2);

头文件:#include <string.h>

函数功能:比较s1与s2两个字符串

函数传参:s1,s2分别为比较的两个字符串的首地址

函数返回值:1 s1>s2

0 s1==s2

-1 s1<s2

memset函数

函数原型:void *memset(void *s, int c, size_t n);

头文件:#include <string.h>

函数功能:将数组中所有字节内容全部写为整型数c

函数传参:s数组首地址,c写入数组的内容,n写入数据的大小(字节)

函数返回值:数组的首地址

memcpy函数

函数原型:void *memcpy(void *dest, const void *src, size_t n);

头文件:#include <string.h>

函数功能:将数组src中的内容按照n个字节大小拷贝到dest数组中

函数传参:dest目标数组,src源数组,n拷贝数据的大小(字节)

函数返回值:数组的首地址

8.函数:

定义:函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。

一般形式如下:

<数据类型> <函数名称>( <形式参数说明> )

{

语句序列;

return[(<表达式>)];

}

函数的说明

函数的说明就是指函数原型

其中,<形式参数说明>可以缺省说明的变量名称,但类型不能缺省。

先声明,后使用

结构体:

概念:结构体是用户自定义的新数据类型,在结构体中可以包含若干个不同数据类型和不同意义

的数据项(当然也可以相同),从而使这些数据项组合起来反映某一个信息。

定义一个结构体类型的一般形式为:

struct 结构体名

{

数据类型   成员名1;

数据类型   成员名2;

数据类型   成员名n;

};

结构体类型的特点:

(1)结构体类型是用户自行构造的。

(2)它由若干不同的基本数据类型的数据构成。

(3)它属于C语言的一种数据类型,与整型、实型相当。

定义结构体变量:

方法一:

先定义结构体类型再定义变量名

struct 结构体名

{

成员列表;

};

struct 结构体名 变量名;

方法二:

struct 结构体名

{

成员列表;

}变量名;

方法三:

struct //没有结构体名

{

成员列表

}变量名;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值