C语言一维数组二维数组、字符数组【C语言学习笔记】

C/C++
236
0
0
2022-11-30

一维数组,二维数组,字符数组,字符串常用函数。

1.数组:一组有序数据的集合。

同一数组中每个元素的数据类型(int long short double float char...)必须相同。

2.定义一维数组(int a;)

一般形式:数据类型 数组的名称[常量表达式]

例如:int a[10];

  1. 定义了一个整型数组,数组中每一个元素都是整数类型。
  2. a是数组名称,表示数组首元素的内存地址,a是常量。
  3. 10表示数组中有10个元素,数组的第一个元素下标是从0开始。
  4. 会在内存中开辟连续的10个空间存放整型数值。
#include<stdio.h>
int main(){
    int a[10];
    int b;
    printf("%d\n",sizeof(b));
    printf("%d\n",sizeof(a));
    printf("%d\n",a);
    printf("%d\n",&a[0]);
    printf("%d\n",&a[1]);
    printf("%d\n",a+1);
    printf("---------\n");
    for(int i=0;i<=9;i++){
        printf("%d\n",&a[i]); 
    }
    printf("---------\n");
    for(int i=0;i<=9;i++){
        printf("%d\n",a+i);
    }
    return 0;
} 

一维数组的初始化

1.对数组中每一个元素进行赋值。

int a[10]={1,2,3,4,5,6,7,8,,91};

2.对数组中的部分元素赋值,没有赋值的元素默认值为0(int long short),0.0(float double)

int a[10]={1,2,3,4,5,6};

注意:如果int a[10];a[0]=1;a[1]=2;数组没有赋值的元素是不确定的值。

3.定义一个全0的数组

int a[10]={0}

4.对数组中的元素赋值,省略定义数组时的元素个数。

int a[]={1,2,3,4,5,6,7,8,9,0};

二维数组的定义:

一般形式:数据类型 数组名称常量

例如:int a[5][5]

  1. 定义了一个整型二维数组,数组中的每一个元素都是整型。
  2. a表示数组名称,表示首行元素的地址,a是常量。
  3. 数组有5行,5列,二维数组行、列的下标是从0开始的。
  4. 数组的每一个元素在内存中都是按行连续存放的。

二维数组的初始化:

1.分行给二维数组赋值

int a[3][4]={{1,2,3,4},{4,3,2,1},{5,6,7,8}};

2.将每个元素写在一个花括号内

int a[3][4]={1,2,3,4,4,3,2,1,5,6,7,8};

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

3.对部分元素赋值

int a[3][4]={{1},{4,3},{5}};没有赋值的元素默认为0.

4.如果对二维数组赋值,行值可以省略,列值不能省略。

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

5.定义全0数组

int a[3][4]={0};

字符数组

数组的每一个元素都是字符

字符串:

结束符:‘\0’

c语言规定用字符‘\0’作为字符串结束的标志。通过字符数组定义字符串时,系统会自动地在字符串的末尾加‘\0’

例:printf("hello world");系统会在这个字符串末尾添加‘\0’,这个字符串占13个字节。

字符串的输入方式:
#include<stdio.h>
int main(){
    char str[10],str2[10],str3[10];
    scanf("%s%s%s",str1,str2,str3);
    printf("str1=%s,str2=%s,str3=%s",str1,str2,str3);
    return 0;
}

输入字符串时,要通过空格或回车来区分每个字符串。

字符串常用函数:

1.字符串输出函数:puts() s--->string

2.字符串输入函数:gets()

3.字符串连接函数strcat(字符串1,字符串2)

功能:将字符串2拼接到字符串1的后面。

4.字符串的复制函数:strcpy(字符串1.字符串2)

功能:将字符串2复制到字符1重

5.计算字符串的实际长度(int):strlen()

例:printf("str1=%d\n",strlen(str1));

6.将字符串转化为全小写:strlwe()lowercase

7.将字符串转化为全大写:strupr()uppercase

8.字符串比较函数:strcmp(字符串1,字符串2)

功能:比较俩个字符串的大小。

返回0----字符串相等 返回1----字符串1>字符串2 返回-1----字符串1<字符串2

比较规则:

①:按照字典的顺序确定字符串的大小,越往后越大a<b;

②:小写字母>大写字母 a>A;

③:如果字符串出现不相同的字符,以第一个不相同的字符进行比较。