【从饮水机到名人堂之c语言】日常学习总结-创新互联

目录

创新互联主要业务有网站营销策划、网站设计制作、成都网站设计、微信公众号开发、微信小程序开发H5开发、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网整合营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

前言

一、指针

1.内存

2.指针变量的大小

二、static关键字

三、常量和宏

四、typedef关键字

五、结构体

总结


前言

在自己的学习过程中的总结,方便日后的复习。


一、指针 1.内存

内存是我们电脑中重要的存储器,我们程序的运行都在我们的内存中,我们的内存被分为一份一份的小的内存单元,一个一个的小单元为一个字节即1byte,然后为了方便管理内存中的每个单元,我们给每块内存进行了编号,就叫做这块内存的指针或地址。

int * 是一种指针变量 他和其他变量类似

&为取地址符,可以通过&来获取变量的地址

*为解引用符 ,可以*加上某一变量的地址来获取该变量进行一系列操作

指针也可以应用到其他类型的变量

如char float

当变量类型为char时,他的指针变量将定义为 char* ,char为指针所对应变量的类型,而后边的*代表这是一个指针。 

#includeint main()
{
 char ch = 'w';
 char* pc = &ch;
 *pc = 'q';
 printf("%c\n", ch);
    return 0;
}
2.指针变量的大小

指针变量的大小取决于地址的大小,当我们在X86平台下时,我们的虚拟的地址空间为32为,即有32位的2进制数字,我们的一个字节(byte)为八个比特(bit),一个比特(bit)存储一个2进制数字0或1,故32位2进制数字将存储需要4个字节的大小。

而在我们的X64平台下,我们的虚拟地址空间为64位,同理可得,我们存储这个地址需要8个字节的空间。

#include//指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
int main()
{
    printf("%d\n", sizeof(char *));
    printf("%d\n", sizeof(short *));
    printf("%d\n", sizeof(int *));
    printf("%d\n", sizeof(double *));
    return 0;
}

二、static关键字

1.修饰局部变量时,该局部变量的生命周期变长,不会随着作用域结束而消失。

如:static int a = 0;

2.修饰全局变量时,该全局变量成为该模块的私有内容,在编译结束后,将由外部链接变为内部链接,在同一个工程中,其他文件并不能用extern关键词直接引用该全局变量。

如:static char = ‘a’;

3.修饰函数时,与全局变量相似,成为该文件的专属内容,有外部链接改为内部链接,也不能用extern声明。

如:static int Add(x,y);

三、常量和宏

1.#define MAX 100

这是对于常量的定义,我们要注意定义后不加分号

2.#define 定义宏

//define 定义宏 #define ADD(x, y) ((x)+(y)) #include int main () {     int sum = ADD ( 2 , 3 );     printf ( "sum = %d\n" , sum );         sum = 10 * ADD ( 2 , 3 );     printf ( "sum = %d\n" , sum );         return 0 ; } 定义宏和函数有些类似, #define ADD(x, y) ((x)+(y)),在此句中,我们可以在((x)+(y)) 将变量用括号括起来,避免产生歧义。
四、typedef关键字

typedef unsigned int uint;

typedef顾名思义就是类型重定义,就是我们对数据类型名新起一个名字,将复杂的名字化简。

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
}
五、结构体

当我们在使用数据时,会考虑到他们的数据类型,如:int float double char short long long long ,这些都是我们的内置数据类型,但是我们在生活中不可能只用到这些数据类型,我们在定义一个学生类型时,应该考虑到学生的姓名学号性别成绩等内容,这时,我们可以定义一个结构体变量,将这些内容进行定义。

struct Stu
{
    char name[20];//名字
    int age;      //年龄
    char sex[5];  //性别
    char id[15]; //学号
};
//打印结构体信息
struct Stu s = {"张三", 20, "男", "20180101"};
//.为结构成员访问操作符
printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
//->操作符
struct Stu *ps = &s;
printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps-
>id);

在这段代码中,使用 struct关键字来对结构体进行操作,在初始化结构体内容时,切记对char类型数组输入时不加&符号,而需要输出结构体内容时,需要用到“.”和“->”结构体成员操作符,“.”操作符用于直接,如s1.age,而“->”用于 使用指针操作时,如ps->age。

总结

这就是今天的学习内容,常总结多学习。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:【从饮水机到名人堂之c语言】日常学习总结-创新互联
转载注明:http://ybzwz.com/article/gcigc.html