c期末笔记(2)

1.定义数组

1.1.a[3][2] = [1,2,3,4,5,6],代码是定义一个三行两列的二维数组。在数组声明和初始化时,如果用户定义的元素数量超过用户规定的元素数量,以语法错误报错。(如:cahr a[3] = "abcde";)数组前面的[]里面的内容所包含的常量表示用户定义的元素个数,如果所给的元素数量不足,则以零补齐。

1.2.定义字符型数组(此处char array [] = "window";)

虽然一个字符占内存的一个字节,但是c语言会自动在字符串的结尾加上""以表示字符串终止,这也会占用一个字节。故,定义char array [] = "window";共占用6+1,即7个字节。

2.数组易错点

2.1.假设定义数组a[10] = {1,2,3,4,5,6,7,8,9,10}; int*p; p = a;

在这里a表示数组a的第一个地址即a[0]的地址,a表示&a[0],故p = a不需要取地址符(&)。

假设定义函数void func(double a[], int*n)

其中,a和n都是形参都是指针变量,都接收地址值。

2.2.定义字符数组时可以省略[]中的标量。(如:char array [] = "HELLO WORLD!";)

2.3c语言对单引号(' ')和双引号(" ")有严格区分。

 
单引号内可以是单个字符,也可以是多个字符('abc'),但是都会被视作单个字符,只分配内存一个字节。 双引号内才能表示多个字符,也可书写如("a",实际"a")

原文地址:https://www.cnblogs.com/buluwasior/p/12622433.html