如何理解C语言数组
来源:互联网 发布:淘宝卖农产品赚钱吗 编辑:程序博客网 时间:2024/06/05 22:34
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;
原文来自:博客园/偷吃的喵
- 如何理解C语言数组
- 易语言数组如何理解
- 深入理解C语言数组
- C语言 数组与指针的理解
- C语言中多维数组的理解
- C语言 数组与指针的理解
- C语言中多维数组的理解
- C语言指针和数组理解
- C语言中数组指针的理解
- 对C语言数组的理解
- C语言中多维数组的理解
- C语言指针与数组 理解
- C语言二维数组深度理解
- c语言之指针数组理解一
- c语言之指针数组理解二
- c语言之指针数组理解三
- 对C语言二维数组的理解
- 理解C语言的数组和指针
- Qt应用远程连接SQL Server
- 数据结构 - 顺序表
- oracle-行转列点评oracle11g sql新功能pivot/unpivot
- 使用百度地图时一个小误区, "_OBJC_CLASS_$_BMKMapManager", referenced from:
- ※ Leetcode - Array - 88. Merge Sorted Array(快速归并两个有序数组)
- 如何理解C语言数组
- yii 语言的设置
- 软链接
- opencv 3.0 DPM cascade contrib模块
- HDU 5137 How Many Maos Does the Guanxi Worth(最短路--dijkstra)
- EF的DBFirst方式访问SQLite
- 二分
- hdu5792树状数组+容斥
- Android初级教程:单击事件的传递机制初谈