如何理解C语言数组

C语言数组是C语言的基础知识,这里总结了数组的知识,希望对大家学习C语言有帮助。

 

数组:C语言中数组 声明

 :int numB[2] = {1,3};  

 int numB[] = {1,3};

以上两种声明方式都可以声明数组

int numC[];

numC = {1,2,3};

以上是错误的声明方式

C语言中数组名就是数组的内存地址

C语言中的数组的赋值需要用{}OC中用[],如果数组部分初始化 int numF[5] = {1,3};

没有被初始化的元素那么系统会自动将其初始化为0

可以通过[索引] = 的方式,给指定索引的元素赋值。

int numA[101] = {[99]=1,[100]=3};

    printf("numA[99] = %i\\n",numA[99]);

    printf("numA[100]  = %i\\n",numA[100]);

 

数组遍历:

int numD[4] = {1,2,3,4};

//动态计算数组元素的个数

int length = sizeof(numD)/sizeof(numD[0]); //sizeof代表计算对象所占的字节数

for (int i = 0; i<length; i++) {

   printf("numD[%i] = %i\\n",i,numD[i]);

 }

 

数组在内存中的存储细节

数组在内存中存储是 一 低位至高位存储,变量则在内存中存储则是 — 高位至低位存储

char charValues[4] = {'a','b','c','d'};

    printf("charValues[0] = %p\\n",&charValues[0]);

    printf("charValues[1] = %p\\n",&charValues[1]);

    printf("charValues[2] = %p\\n",&charValues[2]);

    printf("charValues[3] = %p\\n",&charValues[3]);

    printf("charValues = %p\\n",&charValues);

 

数组作为形参,数组里面的元素可以省略,注意:基本数据类型作为函数的参数是值传递,如果形参是基本数据类型,在函数中改变形参的值不会影响到实参的值。如果形参是数组,那么在函数中修改形参的值,会影响到实参的值。【函数传递基本数据类型,不会修改实参的值,函数传递数组,会影响实参的值

当数组作为形参,会自动转成指针,在函数中永远无法算出元素个数

函数传递数组:

void change2(int values[2])

{

    values[1]= 99;

}

 

int main(int argc, const char * argv[]) {

 

    int nums[2]= {1,5};

    change2(nums);

    printf("num[1] = %i\\n",nums[1]);

return 0;

}

 

函数传递基本数据类型:

void change(int value)

{

    value = 55;

}

int main(int argc, const char * argv[]) {

 

    int nums[2]= {1,5};

    change(nums[0]);

    printf("num[1] = %i\\n",nums[0]);

    

return 0;

 

 

原文来自:博客园/偷吃的喵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值