数组的初始化方式
- 初始化方式
- int a[3] = {10, 9, 6};
- int a[3] = {10,9};
- int a[] = {11, 7, 6};
- int a[4] = {[1]=11,[0] = 7};
数组与函数
数组作为函数参数,可以省略元素个数.
数组作为函数参数.传递是整个数组的地址,修改函数形参, 数组元素的值,会影响到外面的实参数组.
数组当做函数传递时,会当做指针变量来使用. 指针变量在64为编译器环境下,占据 8个字节.
strlen
strlen 在 string.h头文件中
作用是:计算字符串长度
1.急速那的是字符数,并不是字数, 例如:"哈hahha" 则计算结果为7. (一个汉子算作3个字符)
2.计算结果不包括\0.
3.从某个地址开始数字符的个数,知道遇到\0为止.\
指针
1. int *p 只能指向int类型的数据
2.指针变量只能存储地址.
3.指针变量未经过初始化,不要拿来间接访问其他存储空间.
4.任何指针都占用8个字节的存储空间. (64为编译器)
5.指针变量的+1究竟加多少,取决于指针的类型.
清空指针
1. p=0 ;
2. p=null;
%zd unsigned long
指针与数组:
p=&ages[0]; 等价于 p= ages;
指针与字符串
char name[] = "it"; (这叫字符串变量,可改数据)
char *name2 = "it"; (这叫字符串常量,不可改数据) //指针变量name2指向了字符串的首字符
void (*p)();
(*p)是固定写法,代表指针变量p 将来肯定是指向函数.
左边的void: 指针变量p指向的函数没有返回值.
右边的(): 指针变量p指向的函数没有形参.
格式为
结果为
结构体 struct
1.结构体所占用的存储空间 必须是 最大成员字节的倍数.
2.结构体最后"}"后要加 ";" .