追寻梦想的路

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

1、字符串和字符数组的区别,字符数组和普通数组一样,里面的每个元素是一个个的字符,字符串是存在字符数组中的,字符串的结尾处补上了“\0”截止符。

定义过字符串后,得到的是字符数组的首元素的指针,在结尾处加入截止符,可以方便的访问字符串中的任何一个元素。
C类型的字符串是存在字符数组中的,在字符串的结尾处补上"\0",这个结尾符是用来标志字符串结尾的,它的作用是
const * p; //p是一个常量指针

 

2、数组名和指针的区别

int a [20];

int *p =a;

(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;所以sizeof(a) = 80;

(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量

(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址。

 

3、数组和链表的优缺点,什么时候使用数组,什么时候使用链表?

(1)数组在内存中是连续存储的,通过数组下标可以快速访问任何一个元素,其时间复杂度是O(1);链表在内存中不是线性存储的,访问其中任何一个元素都需要从头开始遍历,时间复杂度O(n);

(2)数组需要事先确定大小,会造成内存浪费,链表则较简单,管理方便;

(3)数组中进行插入和删除操作复杂,需要移动大量的元素;链表中进行插入和删除则很简单,只需要改变指针的指向即可。

(4)数组操作简单,链表复杂,但是功能强大,自由度高。

 

#include <iostream>
#include <CSTRING>
using namespace std;
int Lengh(const char *str);



int main()
{
//定义一个字符串
char *str = "the price is five pounds";
char *p = str;
while(*p++)
{
cout << *p;
}

cout << "\nthe length of str is: " << Lengh(str);

return 0;

}

//统计字符串的长度
int Lengh(const char *str)
{
const char *p= str;
int n=0;
while(*p++)
{
n++;
}

return n;
}


 

posted on 2015-03-09 21:33  追寻梦想的路  阅读(1345)  评论(0编辑  收藏  举报