#define定义常量和宏,指针和结构体初了解

一、#define定义常量和宏

1.#define 定义常量

#define MAX=1000;(定义常量MAX,他的值为1000)

#define STR "abcde"(定义常量STR 为字符串abcde)

2.定义宏

宏跟函数很像,但不相同

#define ADD(x,y) ((x)+(y))    (定义ADD 宏体功能是x+y,宏的参数没有类型。)

二、指针

1.一个内存大小为一个字节,每个内存单元都有一个编号,编号就称为该内存单元的地址,我们把地址也叫指针

例如  int a=1;  当a创建完后,占用四个字节,每个字节都有一个地址,&a取地址a取出的是第一个字节的地址。

int * pa=&a;//pa是创建出来存放地址的,pa为指针变量 (int说明的是pa指向的对象,也就是a为int类型,*说明pa是个指针变量,int*整体是一个整形指针变量。)

*pa;(*是解引用操作符,*pa就是通过pa中存放的地址,找到pa指向的空间)
&-取地址操作符,用来取出谁的地址。

指针变量的大小

我们可以用sizeof来计算指针变量的大小,sizeof对应的打印格式为%zu

int main()
{
    printf("%zu\n", sizeof(char *));
    printf("%zu\n", sizeof(short *));
    printf("%zu\n", sizeof(int *));
    printf("%zu\n", sizeof(double *));
    return 0; }

当我们使用的是64位环境下,他的结果为64bit=8Byte

当我们为32位环境下,指针变量大小均为32bit=4Byte   

三、结构体

我们平常使用的都为单个数据,但是实际生活中往往不是单个数据,比如一个学生,他有身高,体重,性别,学号等等等,这时候我们就需要用到C语言中的结构体来实现。

简单结构体举例:

struct Tag                        struct Stu                //结构体类型
{                                        {
    成员列表;                          char name[20];
}                                              int age;
                                                float score;
                                           }
void print(struct Stu *ps)
{
    1.printf("%s %d %f\n",(*ps).name,(*ps).age,(*ps).score);//(也可以用地址来输出结构体)    
    2.printf("%s %d %f\n",ps->name,ps->age,ps->score);//(结构体指针->结构体成员)
}
int main()
{    
    struct Stu s1={"zhangsan",20,95.5f}//结构体初始化
    struct Stu s2={"lisi",40,99.8f}//结构体初始化  
    scanf("%s %d %f",s1.name,&(s1.age),&(s1.score));//输入结构体 在scanf中传参时数组不需要取地址,这里name是个数组
    printf("%s %d %f",s1.name,s1.age,s1.ccore);//输出结构体
    print(&s2)
}

总结


以上就是今天要讲的内容,本文简单介绍了C语言当中的结构体和指针,还需多多复习哦。

你可能感兴趣的:(c语言,开发语言)