## 指针的int类型和char类型声明和输出比较

指针的int类型和char类型声明和输出比较

​ 由于我们对计算机底层原理不熟悉的情况下,我相信每个人在初学指针的时候都会感到很抽象,无解。这里呢,我解释一下输出指针的int类型和char类型的区别。

首先我们看int类型的声明以及输出

#include<stdio.h>
int  main(){
	int var=100;
	int *ptr=&var;
	printf("变量var的值:%d\n",var);
	printf("变量var的地址:%p\n",&var);
	printf("-----------------------------\n");
	printf("指针变量ptr的值:%d\n",*ptr);
	printf("指针变量ptr的地址:%p\n",ptr);
	return 0;
}

输出内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSEwmhlX-1601825868282)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200723011126951.png)]

通过输出内容我们看到了:

这里ptr指针ptr是指针指向地址的*( * 代表 “取内容运算符” )。

输出int类型的值我们就必须要在变量之前添加*,输出地址我们只需要变量名就可以了。

好,这里我们讲声明char指针和输出char指针的区别

众所周知,C语言是不像JAVA等面向对象语言有Stirng类型的,在面向对象中。Char一般指代的是一个字符,而String指代的是字符串。C语言里面char可以声明为一个字符串,其实底层其实是一个字符数组,数组的末尾索引存储的是 “\0”,所以每次输出的时候,遇到“\0”就代表输出结束。

首先看一下char指针声明的代码

#include<stdio.h>
int  main(){
	char *String="Hello World";
	printf("%s\n",String);
	return 0;
}

输出:
    Hello World

为什么输出char变量的时候没有在变量之前添加*修饰符呢,因为我们输出的时候是%s,这是输出字符串类型,我们要的就是一整个字符串,而不是要单个字符,如果是单个字符,我们应该使用的是%c,这样才是输出单个字母,并且这个char *string实际上就是一个字符数组char[],所以*String其实就是这个字符数组的首地址,当我们输出%s的时候,会读到\0才结束整个字符数组的输出,从而使我们看到的是一个字符串。

的首地址,当我们输出%s的时候,会读到\0才结束整个字符数组的输出,从而使我们看到的是一个字符串。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值