c语言数组常用知识点总结

做这个总结的宗旨是够用就好,所以目前只总结了一维数组的部分,这些运用几乎涵盖了我目前碰到的全部问题,以后遇到其他问题再做添加

一.一维数组
1. 初始化方法
第一种:完全初始化。依次赋值
如: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};

2. 指针与数组的结合
数组名:做右值时,数组名表示数组的首元素首地址,因此可以直接赋值给指针。

如果有 int a[5];
则 a和&a[0]都表示数组首元素a[0]的首地址。(指向首元素)
而&a则表示数组的首地址。(指向整个字符串)

3. 用printf输出字符串(字符数组)
如:
int main (int argc, char *argv[])
{
char a[] = "m\\0yp";
char* p = "myp";
/*
双引号做了3件事:
1.申请了空间(在常量区),存放了字符串
2. 在字符串尾加上了'/0'
3.返回首元素的首地址

你这里就是 返回的地址 赋值给了 p
*/
printf("%s\n", a);//%s对应的是一个char*类型的变量,输出的是冲这个地址开始直到0/结束的字符
printf("%s\n", p);
return 0;
}

猜你喜欢

转载自www.cnblogs.com/maoypeng/p/9107846.html