iosC语言高级第一部分

C语言的构造类型:

构造类型是由若干个成员组成的,每个成员都是一个基本数据类型。

构造数据类型可以嵌套,构造里面还有构造。
结构体可以作为函数的参数来传递,方便了书写。
 
定义结构体的方法:
 1 Struts 结构名{ 2 成员列表 3 }; 
声明列子:
 
1 Struts student{
2      int num;
3      char name;
4      char sex;
5      int score;
6 };

定义:

 1 Struts student stu; 

结构数组,改数组每个元素都是一个相同类型的结构体

1 //结构体数组的初始化方法
2 
3 //1、定义结构体数组的时候,进行初始化
4 
5 struct Student{
6 
7     char name[20];
8     int age;
9 }boys[3] = {{"ss",18},{"kjh",38},{"whjs",21}};

 

访问其成员的方法:
结构变量名.成员名

 

 
 
C语言的指针:
//声明一个指针,存放的是变量a的地址
声明: 
1 int *nam = &a
2 //这里的*nam = a    am = 变量a的地址
自己理解:
“*”为指针的标志、“*”+指针变量名 = 被指向变量的值。
“&”为取地址符号。“&”+变量名 = 改变量的地址。
 
 
枚举类型:关键字 :enum
枚举类型是一种基本数据类型,不是一种构造类型,因为它不能再分解为任何的基本类型。
枚举类型的定义中列举了所有可能的取值。
枚举类型的结构:
1 enum 枚举类型名{枚举值表}

 

typedef关键字:
可以为数据类型取别名~
格式:
1 typedef 原类型名 新类型名
给数组起别名:
 1 //给数组起别名~
 2 typedef int ARRAY[5];  // int a[5]   数组长度为5
 3 ARRAY a1 = {1,2,3,4,5};
 4 ARRAY b1 = {5,4,3,2,1};
 5 
 6 for(int i = 0;i < 5;i++){
 7     printf("%d\t",b1[i]);
 8 }
 9 
10 return 0;

运行结果:5  4  3  2  1

C语言中的宏: 关键字:#define
被定义为“宏”的标识符称为“宏名”,在编译预处理时,对程序中所有出现的“宏名”,都用
宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
在字符串中出现的宏名不会被替换。
宏可以嵌套定义。比如:
 
1 #define R 4
2 #define PI 3.14
3 #define AREA
可以使用  #undef  来取消#define
习惯上宏名用大写字母表示,以便于与变量区别。但也允许小写。
定义形式:
1 #define 标识符 字符串

 

 
有参宏:
对带参数的宏,在调用中,不仅要展开,而且要用实参去代替形参。
形式:  
#define 宏名(形参表) 字符串
 1 /*有参宏  #define SUM (a) a+a
 2    SUM(3) 不仅要  a+a替换,而且还要把实参3带入到字符串中
 3 
 4 */
 5 #include<stdio.h>
 6 #define SUM(a) a+a
 7 
 8 int main(int argc,const char * argv[]){
 9 
10     int result = SUM(3);
11     printf("%d\n",result);
12     return 0;
13 }

运算结果:6

 
typedef和#define的区别:
应注意用宏定义表示数据类型和用tpyedef定义数据说明符的区别。
宏定义知识简单的字符代换,是在预处理完成的,而typedef是在编译时处理的,
他不是简单的代换,而是对类型说明符重新命名。被命名的标识符具有类型定义说明的功能。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(iosC语言高级第一部分)