C语言数组和字符串

C程序内存分配

  1. 栈区(stack) - 由编译器自动分配释放,存放函数的参数名,局部变量名等。
  2. 堆区(heap) - 有程序员分配和释放,它与数据结构中的是两回事。
  3. 全局区(静态区)(static) - 全局变量和静态变量存储位置
  4. 文字常量区 - 常量字符串存放位置
  5. 程序代码区 - 存放函数体的二进制代码

数组

说明

存储一组数据的容器

特点

  • 只能存储一种类型的数据
  • 有顺序之分,索引从0开始。

定义

元素类型 数组名[元素个数]
int nums[3];

初始化

一般会在数组定义的同时进行初始化
int nums[3] = {2,5,3};

访问

通用下标(索引)访问:nums[1];

二维数组

定义

初始化

  • 按行进行初始化
    int a[2][3] = { {2, 2, 3}, {3, 4, 5} };
  • 按存储顺序进行初始化(先存放第1行,再存放第2行)
    int a[2][3] = {2, 2, 3, 3, 4, 5};
  • 对部分元素进行初始化
    int a[2][3] = { {2}, {3, 4} };
  • 如果只初始化了部分元素,可以省略行数,但是不可以省略列数
    int a[][3] = {1, 2, 3, 4, 5, 6};

字符串

  • char a[] = “123”; 和 char a [] = {‘1’,’2’,’3’};的区别,可以比较大小
  • “123”其实是由’1’、’2’、’3’、’\0’组成
  • 字符串的输出”%s”,’\0’是不会输出的

字符串数组

  1. char names[2][10] = { {‘J’,’a’,’y’,’\0’}, {‘J’,’i’,’m’,’\0’} };
  2. char names2[2][10] = { {“Jay”}, {“Jim”} };
  3. char names3[2][10] = { “Jay”, “Jim” };

常用字符串函数

  • strlen(字符数组名或字符指针变量);字符串测长函数
  • strcat(字符串1的地址,字符串2的地址);将字符串2的内容连接到字符串1的尾部。
  • strcmp(字符串1的地址,字符串2的地址);比较串1和串2哪个比较大。比较大小的依据是,两个字符串从左往右相应位置上第一个不相等的字符ASCII码值之差
  • strcpy(字符串1的地址,字符串2的地址);将字符串2的内容复制到字符串1内。

 上一篇
C语言的预处理指令和关键字 C语言的预处理指令和关键字
预处理指令 C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释,产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 为了区分预处理指令和一般的C语句,所有预处理指令都以符号“#”开头,并且结尾不用分号 预处理指令
2015-12-20
下一篇 
C语言include和变量 C语言include和变量
常见函数 main函数main函数时整个C程序的入口,整个C程序中也有且仅有一个main函数 printf函数在屏幕上输出内容,使用前必须加 #incluce <stdio.h> #include #include指令介绍 #
2015-12-19
  目录