C语言知识小结(五)
来源:互联网 发布:中美洲际高铁 知乎 编辑:程序博客网 时间:2024/06/15 23:59
二维数组
二维数组的定义
类型 + 数组名 + [常量表达式][常量表达式]
例如:
int a[2][3] float b[3][4]
二维数组的引用
数组名 [下标][下标]
例如:
a[4][3]
二维数组的初始化
(1)分行给二维数组赋初值(定义的时候赋值)
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)将所有的数组放在一个括号内
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
(3)对部分元素赋值
int a[3][3] = {{1},{5},{9}};
是对每一行的第一列元素赋值,未赋值的元素取0值,赋值后各元素的值为:
1 0 05 0 0
9 0 0
4)如果对全部的元素赋值,则定义时候对第一维的长度可以不指定,而第二维的长度不能够省。
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
等价于:
int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
二维数组名及地址
数组名是第一个元素的首地址
第一维数组相当于第二维的数组名a + i: 第i+1个一维数组的地址
*(a + i): 第i+1个一维数组首元素的地址
*(a+i)+j: 第i+1个一维数组的第j+1个元素的地址
二重指针
二重指针一般用的场合:
(1)二重指针指向一重指针的地址。
#include<stdio.h>int main(){int a = 10;int *P1;int **P2;P1 = &a;P2 = &P1;return 0;}
(2)二重指针指向指针数组的地址。
#include<stdio.h>int main(){int *a[4];int **p;p = a;}
结构体
struct 结构体名
{
结构体所包含的变量或数组
};
结构体的初始化:
struct infor
{
char name[50];
char is_male;
int age;
};
struct infor s1 = {“name”,’0’,3}; //完全初始化
struct infor s2 = {.age = 1};
struct infor s2 = {“name”}; //部分初始化
给结构体成员赋值
strcpy(s1.name, "郭");
s1.is_male = 1;
s1.age = 17;
读取结构体成员的值
printf("结构体元素:%d %d %s.\n", s.is_male, s.age, s.name);
相同结构体变量之间可以互相赋值:
struct infor
{
char name[50];
char is_male;
int age;
}s1,s2;
s1.age = 2 ;
s2 = s1 ;
字节对齐
struct str1 // 7{ int a; // 4 char b; // 1 + 1 short c; // 2}s1; // 8struct str2{ char a; // 1 char b; // 1 // + 2 int c; // 4}s2; // 8struct str3 // 6{ int a; char b; char c; // + 2}s3; // 8struct str4{ char a; short b; short c;}s4; //61、 结构体变量的地址是从4字节对齐的未知开始(0、4、8、C)
2、各成员在结构体里自身要对齐;
3、成员之间不满足自身对齐,得填充(padding)
4、满足结构体自身对齐的最小倍数
5、默认是4字节对齐,最大的基本数据类型和这个默认值要相比较,取其小
阅读全文
0 0
- C语言知识小结(五)
- C语言知识小结
- C语言算法知识(201607)-小结
- C语言知识小结(一)
- C语言知识小结(二)
- C语言知识小结(三)
- C语言知识小结(四)
- C语言文件知识小结
- C语言重点知识小结
- C语言移位知识小结
- C/C++的基本语言知识(五)
- 【C语言】【指针相关知识小结】
- C语言·数组知识小结
- 雪*C语言核心知识总结五
- 雪*C语言核心知识总结五
- Linux系统知识小结(五)
- C语言(五)
- JNI所需的C语言知识小结
- DDR2学习笔记(2)
- 解决Redhat BCM43142不能连接WIFI问题
- QuickSort
- 欢迎使用Markdown编辑器写博客(源文件)
- FAQ(21):org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'a4Pa
- C语言知识小结(五)
- Kotlin学习(7):返回和跳转
- 程序员面试宝典随笔记(一)-----TCPIP和socket编程面试技巧
- 15_张孝祥_多线程_Semaphere同步工具
- LaTeX编辑环境搭建-MikTeX+ATOM
- 20171218_工作记录
- 欢迎使用CSDN-markdown编辑器(生成文件)
- redis 键key
- 724. Find Pivot Index