您的位置:首页 > 其它

《C和指针》学习笔记五/数组、字符串字符和字节/

2012-08-18 14:51 302 查看
数组名的值是指向数组第一个元素的指针。但有两个例外。sizeof返回整个数组所占用的字节而不是一个指针所占用的字节。单目操作符&返回一个指向数组色指针,而不是一个指向数组第一个元素的指针的指针。

C的下标引用和间接访问表达式是一样的。

声明数组参数其实是一个指针。

字符数组的初始化

char message1[ ]="hello";初始化一个字符数组的元素,等价于char message1[ ]={'h','e','l','l','o',0};

char *message2 ="hello";是一个真正的字符串常量,这个指针变量被初始化为指向这个字符串常量的存储

位置。

指向数组的指针

比如 int (*p)[10]; 这是的p是一个指向整型数组的指针。

指针数组

如果一个数组,其元素均为指针类型数据,该数组称为指针数组。

一维指针数组的定义形式为 类型名 *数组名[数组长度] 如 int *p[4];

注意指向数组的指针与指针数组的区别。只要记住下标引用的优先级高于间接访问。

const和指针

1、const在前面

const int nVlaue; //nVlaue 是const

const char *pContent;//*pContent是const,pContent可变

const (char*) pContent;//pContent是const,*pContent可变

char* const pContent;//pContent是const,*pContent可变

const char* const pContent; //pContent和*pContent都是const

2、const 在后面,与上面的声明对等

int const nValue;//nValue是const

char const *pContent;//*pContent是const,pContent可变

(char*)const pContent;//pContent是const,*pContent可变

char* const pContent;//pContent是const,*pContent可变

char const* const pContent;//pContent和*pContent都是const

判断原则:

沿着*号划一条线,如果const位于*号左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*号的右侧,const就是修饰指针本身,即指针本身是常量。另需注意 对于const(char*);因为char*是一个整体,相当于一个类型,因此,这个限定指针是const。

当一个多维数组名作为参数传递给一个函数时,它所对应的函数形参的声明中必须显式指明第2维(和接下去所有维)的长度。

在多维数组的初始值列表中使用完整的多层花括号能提高可读性。

头文件string.h包含了使用字符串函数所需的原型和声明。

不受限制的字符串函数

字符串长短 strlen

复制字符串 strcpy

连接字符串 strcat

字符串比较 strcmp

strcpy 和strcat函数都返回它们第一个参数的一份拷贝,就是一个指向目标字符数组的指针。

字符串必须以NUL字节结尾。

查找一个字符

在一个字符串中查找一个特定字符最容易的方法是使用strchr和strrchr函数。

查找任何几个字符 使用strpbrk函数

查找一个子串,使用strstr函数

查找一个字符串前缀

strspn和strcspn函数用于在字符串的起始位置对字符计数

查找标记 使用strtok函数实现,当strtok函数执行任务时,它将会修改它所处理的字符串。

字符转换

toupper函数返回其参数的对应大写形式,tolower函数返回其参数的对应小写形式。

内存操作

这些函数能够处理任意的字节序列(包括含有NUL的字节序列)

memcpy函数、memmove函数 、memcmp函数 、 memchr函数、 memset函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐