数组、指针及字符串(1)

(一维)数组

数组的特性:

    1. 连续性,即所有元素,在内存中是连续的

    2. 一致性,所有元素的类型是一致的。 

数组可以将类型一样的东西集中存放,方便管理。

注意:

    1. 数组声明时,必须指定大小,不可以为变量大小

    2. 数组的名字,其实是一个地址,代表数组的首地址

数组寻址

编译器如何找到数组元素nScoreAry[1]的地址? 

它是依据数组寻址公式的: 

                            nScoreAry[i]的地址  =  nScoreAry  +  sizeof(type) * i

得到地址后,再按照解释方式,取出内容。

#include <stdio.h>

int main(int argc, char* argv[])
{
	int nScoreAry[5] = { 0x42c90ccd, 0xFFFFFFFE, 33333333, 44444444, 55555555 };
	int dbScoreAry[5] = { 0 };

	printf("%p\r\n", nScoreAry);
	printf("%d\r\n", nScoreAry[1]);
	printf("%u\r\n", nScoreAry[1]);
	return 0;
}

main作为C语言的入口函数,它的参数是如何传递来的? 

答:来自于命令行。argc代表参数个数,argv代表参数字符串

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
	printf("argc: %d\r\n", argc);
	//遍历打印参数
	for (size_t i = 0; i < argc; i++)
	{
		printf("%s\r\n", argv[i]);
	}
	return 0;
}

从命令行可以传参,使得程序可以和用户交互。(main最多传三个参数,1、参数个数  2、参数对应的值  3、环境变量)

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
	printf("Hello: %s, Welcome to NR902,\r\n I am:%s", argv[1], argv[0]);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/HuangCha/article/details/86688350