前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言中关于char类型的认识

C语言中关于char类型的认识

作者头像
zhangjiqun
发布于 2024-12-16 05:28:13
发布于 2024-12-16 05:28:13
12300
代码可运行
举报
文章被收录于专栏:计算机工具计算机工具
运行总次数:0
代码可运行

char是分配1字节,存储的是ASCII码,A:65,a:97;

在命名char类型是不要使用双引号,c中必须单引号,在java中就高级点了什么都可以。

补充:printf()输出时对于char有点不同,使用“”%d“是输出字符代表的ASCII码。使用:%c,是输出单个字符;使用%s:就是输出多个字符了。

代码:

#include <stdio.h>

int main(void)

{     char q=1;     char a=254;     char aa=255;     char z=256;     char x=257;     char c=258;     char v=512;     char b=1024;     printf("%d\n",q);       printf("%d\n",a);       printf("%d\n",aa);         printf("%d\n",z);         printf("%d\n",x);     printf("%d\n",c);         printf("%d\n",v);       printf("%d\n",b);      char s[2]={'ajjyyihgkk','y'};     printf("%s\n",s);     return 0;

}

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1
-2
-1
0
1
2
0
0
ky

至于最后一个你看人以自己试试,的却是这样的。

代码:

#include <stdio.h>

int main(void)

{     char dfd='asa';     printf("%s",dfd);     return 0;

}

代码结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
signal: segmentation fault (core dumped)

原因就是:char的存储空间是1字节;

代码:

#include <stdio.h>

int main(void)

{     int max=4;     int aa []={'1','2','3','4','a'};     int *per[4];     for(int i=0;i<5;i++){         per[i]=&aa[i];         printf("%d\n",aa[i]); }     return 0;

}

代码结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
49
50
51
52
97

提示:只要你加了:‘’,这就说明这就是char类型,int与char类型之间是可以进行相互转化的。最后输出的是ASCII码。

再来一段对比代码

代码1:

#include <stdio.h>

int main(void)

{     int max=4;     int aa []={1,2,3,4,'a'};     int *per[4];     for(int i=0;i<5;i++){         per[i]=&aa[i];         printf("%d\n",*per[i]); }     return 0;

}

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1
2
3
4
97

代码2:

#include <stdio.h>

int main(void)

{     int max=4;     int aa []={1,2,3,4,'a'};     int *per[4];     for(int i=0;i<5;i++){         per[i]=&aa[i];         printf("%d\n",per[i]); }     return 0;

}

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-1790809104
-1790809100
-1790809096
-1790809092
-1790809088

提示:

之间的差距就是一个*,就是拿到地址之后的存储内容。

代码:

#include <stdio.h> const int MAX = 4; int main () {    const char *names[] = {                    "Zara Ali",                    "Hina Ali",                    "Nuha Ali",                    "Sara Ali",    };    int i = 0;    for ( i = 0; i < MAX; i++)    {       printf("Value of names[%d] = %s\n", i, names[i] );    }     char aa[]="aa";     int ss='a'+'a';     printf("%s\n",aa);     printf("%d",ss);    return 0; }

代码结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Value of names[0] = Zara Ali
Value of names[1] = Hina Ali
Value of names[2] = Nuha Ali
Value of names[3] = Sara Ali
aa
194

提示:int类型也是可以复制字母,并且有加减运算。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验