C语言数组基本知识点详解
数组基本知识点:
1,数组初始化,命名
2.数组大小,数组类型
3.数组访问方法
4.字符数组
5.数组下标越界
6.数组作为函数参数问题
7.二维数组基本概念以及多维数组
以后还会有关于指针数组问题
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main()//二维数组初始化,大小
{
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf(" %d,%x", a[i][j], &a[i][j]);//二维数组展开来就是一位数组
}
printf("
");
}
printf("%d", sizeof(a));//二维数组大小等于元素个数乘以4
system("pause");
}
void main34()//数组下标越界问题
{
int num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < 11; i++)
{
printf("%d ,%x
", *(num + i), num + i );//最后一个打印的值是垃圾值
//数组下标越界编译器不会报错,因为数组的外部内存空间,不确定是否有权限,如果越界访问程序可能奔溃
}
system("pause");
}
void gogo(int a[10])
{
printf("%d
", sizeof(a));//数组作为函数参数的时候,传递的是地址
}
void main33()//
{
int a[10];
printf("%d
", sizeof(a));//这里数组的大小是40
gogo(a);
//数组作为函数参数是传递的仅仅是数组首地址,如果不是参数仍然是数组大小
system("pause");
}
void main32()//数组访问问题
{
int num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < 10; i++)
{
printf("%d,%d,%x,%x
", num[i], *(num + i), num + i, &num[i]);
//num[i]等价于*(num+i),数组每个元素的地址num+i等价于 &num[i]
} for (int i = 9; i >= 0; i--)//逆序输出数组元素个数
{
printf("%d
", *(num + i));
}
system("pause");
}
void main31()//数组与字符串
{
char str1[ ] = { "c", "a", "l", "c" };//大括号不会加上
char str2[ ] = "calc";//字符串双引号会自动加上 ,所以输出不会烫
printf("%s
", str1);
printf("%s", str2);
//system(str2);
system("pause");
}
void main30()
{
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
printf("%x
", a);
printf("%d
", sizeof(a));//求数组大小问题
printf("%d
", sizeof(a) / 4);//求数组元素个数,数组每个元素在内存中是连续的
for (int i = 0; i < 10; i++)
{
printf("
a[%d]=%d &a[%d]=%x", i, a[i], i, &a[i]);
}
system("pause");
}
- 上一篇: php中3DES加密技术
- 下一篇: php 3des 加密类