一维数组
- 初始化方法
第一种:完全初始化。依次赋值
如:a[5] = {2,3,4, 5, 6};
a[] = {1,2, 3, 4, 5, 6};
第二种:不完全初始化。初始化式中的值从a[0]开始,依次向后赋值,不足的默认用0填充赋值
如:a[5] = {4, 5, 6};
第三种:间隔初始化。未赋值的默认用0填充赋值
如:a[5]={100, [4] = 99};
a[5]={[1]=100, [4] = 99};
a[3000]={[5] = 200};
注:数组初始化之后不能再整体重新赋值,但可以单独重新赋值
用printf输出字符串(字符数组)\
如:
#include <stdio.h>
int main (int argc, char argv[])
{
char a[] = "m\0yp";
char p = "myp";
char* p1 = "my\0p";
/*
双引号做了3件事:
1)申请了空间(在常量区),存放了字符串
2) 在字符串尾加上了'\0'
3)返回首元素的首地址
数组中几个关键符号(a a[0] &a &a[0])的理解
(1)a不能做左值(因为数组在初始化之后就不能进行整体操作了),做右值表示首元素的首地址等同于&a[0]
(2)a[0]做左值时表示数组第0个元素对应的内存空间;做右值时表示数组第0个元素的值
(3)&a不能做左值;&a做右值时表示整个数组的首地址。
(4)&a[0]不能做左值,做右值时表示首元素的首地址等同于a。