结构体
复合类型和结构体
复合类型:
示例代码:
struct test_sturuct{
int x,y;
}
如果用这种复合类型来定义变量:
示例代码:
struct test_sturuct{
int x,y;
}z1,z2;
定义访问结构体:
#include<stdio.h>
int main(void){
struct test_sturuct{
int x,y;
}z;
int x=3;
z.x=x;
z.y=4;
printf("z=%f%f",z.x,z.y);
return 0;
}
注:如果未指定成员则用0 来初始化,不能给结构体赋值,结构体之间可以赋值
数所抽像
示例代码:
#include <stdio.h>
struct test_struct{
double x,y;
};
double part1(struct test_struct z){
return z.x;
}
double part2(struct test_struct z){
return z.y;
}
数据类型标志
嵌套结构体
示例代码;
struct segment{
struct test_struct start;
struct test_sttuct end;
}
数组
也是一种复合数据类型,由一系列相同类型的元素组成
示例代码:
int count[4];
数组的长度由常量表达式来指定,上面定义的数组占4 个int型的存储单元
访问数组可以用指定下标的方式:
count[0];
注数组之间不能赋值和初始化
示例代码:
#include <stdio.h>
int a[N];
void gen_random(int upper_bound){
int i;
for(){
a[i]=rand()%upper_bound;
}
}
void print_random(){
int i;
for(i=0;i<N;i++){
printf("%d",a[i]);
}
printf("\n");
}
int main(void){
getn_random(100);
print_random();
return 0;
}
宏定义: #define TEST 2
多维数组
示例代码:int x[3][4]={1,2,3,4,5,6,7,8,9,11,12,13};
也可以这样初始化:int x[][2]={{1,2},{3,4},{5,}};
编码风格
1 if/while/for与括号之间可以有一个空格
2 双目运算符两侧可加空格,单目不可以
3 后缀和操作数之间不能有空格
4 ,/;后要加空格
5 折行
6 字符串分行不用+
7 switch中的case和default不要缩进
8 代码段和函数间可以用空行
注释
多行注释
/*
*
*/
indent工具
$indent -kr -18 文件名