c语言 二维数组笔记
2023-12-20 07:56:52
C语言二维数组
通过c语言代码,了解二维数组的一些基本概念。
- 二维数组的定义
- 二维数组的初始化赋值
- 二维数组的行数和列数 可参考:c语言-数组长度的计算(结构体数组,字符串数组)
- 二维数组的首地址
- 二维数组的memset赋值
代码
#include <stdio.h>
#include <string.h>
//这里一定要注意:memset 函数是按字节对内存块进行初始化的。
//对于 char 型的数组,可以将其初始化为任意一个字符。
//但对于 int 型的数组,由于 memset 函数按字节对内存块进行初始化,所以不能用它将 int 数组初始化为 0 和 -1 之外的其他值。
int main(int argv,char *argc[])
{
int array[3][5]={{0,1,2,3,4},{0,1,2,3,4},{0,1,2,3,4}};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
printf("***************************************\n");
printf("arryNum=%d\n", sizeof(array)/sizeof(array[0]));//共3行
printf("arryInNum=%d\n", sizeof(array[0])/sizeof(int));//每行共5列
printf("sizeof(array)=%d\n", sizeof(array));
printf("sizeof(array[0])=%d\n", sizeof(array[0]));
printf("sizeof(array[0])*3=%d\n", sizeof(array[0])*3);
printf("addres array=%d,array[0]=%d,array[0][0]=%d\n", array,array[0],&array[0][0]);
printf("***************************************\n");
// 使用memset将二维数组清零,正确
memset(array, 0, sizeof(array));
// 打印清零后的二维数组
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
printf("***************************************\n");
//错误
memset(array, 5, sizeof(array));
// 打印清零后的二维数组
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
printf("***************************************\n");
// 使用memset将二维数组清零,正确
memset((char *)array, 0, sizeof(array));
// 打印清零后的二维数组
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
printf("***************************************\n");
//错误
memset((char *)array, 0x000005, sizeof(array));
// 打印清零后的二维数组
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
测试结果
注意事项
memset 函数是按字节对内存块进行初始化的。
对于 char 型的数组,可以将其初始化为任意一个字符。
但对于 int 型的数组,由于 memset 函数按字节对内存块进行初始化,所以不能用它将 int 数组初始化为 0 和 -1 之外的其他值。
文章来源:https://blog.csdn.net/weixin_46158019/article/details/135064905
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!