04 - C语言数组和字符串

原创
2015/12/20 16:45
阅读数 81

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内。
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部