【C语言】指针类型|空类型|函数返回类型和参数|整形在内存当中的存储空间 

举报
謓泽 发表于 2023/09/22 23:54:38 2023/09/22
【摘要】 【C语言】指针类型|空类型|函数返回类型和参数|整形在内存当中的存储空间 

指针类型

  • 指针的目的其实就是为了存放一个地址赋值给其中的变量,而指针的字节都是4个字节。
  • 这样我们用一段代码让大家直观的看看是不是指针是4个字节,由于博主再前面跟大家讲过野指针的内容但是指针的内容还没有跟大家说,到时候博主也会写一篇有关于指针的内容,由此可见指针类型是一种特殊的类型。注意一下,指针的定义方式就是带*💨
#include<stdio.h>
int main(void)
{
	int a = 10;
	int* p = &a;				//整形指针变量p接收a的地址
	//这里数据类型全部定义成指针了-- 32位 4byte 64位 8byte
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(double*));
	printf("%d\n", sizeof(char*));
}
  •  运行结果:

空类型

  • 一种特殊的返回类型,表示空函数,也就是没有返回值的函数。空类型(无类型) void 用于显示说明一个函数不返回任何值。还可以说明指向 void 类型的指针,说明以后,这个指针就可指向各种不同类型的数据对象💫
  • void无传参,当你在定义程序的时候加入无传参的时候,虽说程序也会运行起来。但是会有waring提示就是不需要的参数

函数的返回类型☮

#include<stdio.h>
void print()
{
    printf("hello word\n");
}
int main(void)
{
    print();
}

函数的参数☪

#include<stdio.h>
void print()//无参数的话进行传参也是可以的,但是这里没有所以我们C语言并不会进行接收
{
    printf("hello word\n");
}
int main(void)
{
    print(10);//在print函数当中给上参数10
}

整形在内存当中的存储空间 

想要了解这个内容的话,我用一段代码给大家演示下:

#include<stdio.h>
int main(void)
{
    int a = 5;
    int b = -3;
}

a存储的结果

 b存储的结果

  • 大家发现了没有,这两个的存储结果是不一样的,接下来我就来告诉大家整形在内存当中是怎么存储的。
  • 其实就是先要了解原码,反码,以及补码的概念
  • 计算机中有符号数(整形)有三种表示方法分别是:原码,反码以及补码。三种表示方法都有符号位和数值位两个部分,符号位是用0表示位"正",用1表示为"负",而数值位的三种表示方法各不相同。注:无符号的原码反码以及补码是相同的💨。

  • 有符号数字是分为两种的一种叫做正数,另一种叫做是负数。在正数当中是相同的,然而在负数当中这三种的表达方式就不一样了💨

原码:-1

原码:1

......... 1001

0001

反码:-1

反码:1

 ..........1110

0001

补码:-1

补码:1

 ..........1111

0111

  • 上面的是负数形式三种情况,...........这个是省略如果是整形前面32位数字,注意这里最高位是1,所以是负数的三种形式。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。