b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c 计算结构体大小 C语言学习入门(3)

电脑杂谈  发布时间:2017-12-25 13:05:49  来源:网络整理

a[0] =8;

a[1] =10;

元素值列表可以是数组所有元素的初值,也可以是前面部分元素的初值

inta[4] = {2,5}; 这样就赋值给a[0]=2;a[1]=5; a[2]=a[3]=默认值0

当定义并直接初始化时 可以不指定元素个数

int a[] = {2,3,5};

数组初始化时的赋值方式只能用于数组的定义,定义之后只能一个元素一个元素地赋值

inta[3];

a = {1,2,3};//错误。 因为 数组名a 代表变量的地址,是个常量,给常量赋值就错了

当数组作为实参时,因为传递的是一个地址,所以形参改变,实参也会改变

二维数组

定义形式:类型数组名[行数][列数]

inta[2][3];//共2行3列,6个元素, 即 两个包含三个元素的一维数组

在内存中的存储情况,例如int a[2][2]

(注意:a[0]、a[1]也是数组,是一维数组,而且a[0]、a[1]就是数组名,因此a[0]、a[1]就代表着这个一维数组的地址)

1>数组a的地址是ffc1,数组a[0]的地址也是ffc1,即a = a[0];

2>元素a[0][0]的地址是ffc1,所以数组a[0]的地址和元素a[0][0]的地址相同,即a[0] = &a[0][0];

3>最终可以得出结论:a = a[0] = &a[0][0],以此类推,可以得出a[1] = &a[1][0]

printf(“%p\n%p\n%p”, a, a[0], &a[0][0]);

二维数组的初始化

* 按行进行初始化

inta[2][3] = { {2,2,3}, {3,4,5} };

*按存储顺序进行初始化(先存放第1行,再存放第2行)

inta[2][3] = {2,2,3,3,4,5};

*对部分元素进行初始化

inta[2][3] = { {2}, {3,4} };

intb[3][3] = { { }, { , ,2}, {1,2,3}};

*如果只初始化了部分元素,可以省略行数,但是不可以省略列数

inta[][3] = {1,2,3,4,5,6};

inta[][3] = {{1,2,3}, {3,5}, {}};

为什么不能只省略列数呢? 因为int a[2][]={1,2,3,4,5,6} 这样无法确定元素在哪一行

字符串简介

*在Java中,一个字符串可以用String类型来存储

String s =”MJ”;

C语言中没有String这种类型。其实字符串就是字符序列,由多个字符组成,所以在C语言中,我们可以用字符数组来存储字符串。

*字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志’\0’。

‘\0’是一个ASCII码值为0的字符,是一个空操作符,表示什么也不干。所以采用字符数组存放字符串,赋值时应包含结束标志’\0’。

*字符串”mj”的存储情况如下(假设用字符数组char a[]来存储):char a[] = {‘m’, ‘j’, ‘\0’};

注意了,尾部有个’\0’,如果没有这个结束标记,说明这个字符数组存储的并不是字符串

字符串的初始化

char a[3] = {‘m’, ‘j’, ‘\0’};

char b[3];

b[0] = ‘m’;

b[1] = ‘j’;

b[2] = ‘\0’;

char c[3] = “mj”;//“”初始化时,系统会自动在字符串尾部加上一个\0结束符

char d[] = “mj”;

char e[20] = “mj”;


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-55787-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 惠博坤
      惠博坤

      当前必须完全抛售美国国债

    热点图片
    拼命载入中...