c语言字符和字符串区别 c语言字符串定义


想弄懂C语言中数组和指针的关系吗?这篇文章就占据你三分钟时间,看完你肯定会有收获!
数组 数组声明为 数据类型 名称[ constant-size ],并将一个数据类型的一个或多个实例分组到一个可寻址的位置
constant-size可能是一个表达式,但是该表达式必须求值为常量,例如:

#定义MAX_SIZE 16

int列表[MAX_SIZE1];
C数组开始于元素0,所以像阵列定义 int a[3];将创建三个int软件,可寻址如a[0],a[1],和a[2]
请注意,即使定义很难说a[3],也没有名为a[3]
与其他变量一样,全局和静态数组元素默认情况下初始化为0,并且自动数组元素填充有垃圾值
可以使用大括号中的一个或多个值来初始化数组,例如:
int a[3] = {5, -2, 17};
ANSI C之前的编译器可能不允许在自动数组上进行初始化
如果存在初始化值列表,但未 指定常量大小,则数组的大小与初始化值的数目相同
int q[] = {1, 2, 3}; 是相同的
int q[3] = {1, 2, 3};
要声明对另一个文件中定义的数组的外部引用,请使用extern int a[];
字符串常量 在C语言中,类型数组char用于表示字符串,字符串的结尾由设置为0的字节标记(也称为NUL字符)
以下定义都将其数组设置为相同的值:
int str1 [] = {‘a’,’b’,’c’,’ 0′};
int str2 [] =“ abc”;
ANSI C还允许定义像int str[3] = “abc”; ,其是相同的int str[3] = {‘a’, ‘b’, ‘c’}; (省略了最终NUL字符)
多维数组 多维数组只是数组的数组(数组的数组…)
类似的多维数组m[3][2]存储在连续的存储位置中,例如m [0] [0],m [0] [1],m [1] [0],m [1] [1],m [2] [0] ,m [2] [1]
指针 指针是包含变量地址的变量
有两个与指针关联的运算符:
该&操作符返回其参数的地址
该*

    推荐阅读