当前位置:网站首页>C语言单、双引号的区别
C语言单、双引号的区别
2022-08-09 09:01:00 【Mike峰】
在用字符数组其中的一个字母比较时出错了
char w[100][100];
判断首字母是否是 ‘*’
if(w[100][0] == "*")
错误的会报错,c禁止指针和整数比较
if(w[100][0] == '*')
这是正确的。
文章来源:Slyar Home (www.slyar.com)
我的例子:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char str[26];
printf("Input a string.\n");
gets(str);
printf("The string you input is: %s",str);
if(str[0]=="w"&&str[1]=="a")
{
printf("正确");
}
else
{
printf("%c, %c", str[0], str[1]);
}
}
此时我们输入“wangfeng”也不会输出“正确”,这是因为str[0]、str[1]是字符,而“w”并不是字符,而是字符串“w\0”,'w'才是字符。
并且在C语言中,不能够使用 == 来判断两个字符串是否相等(python可以),需要使用strcmp()。
1、含义不同。
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。而一般我们的编译器采用的都是ASCII字符集。因此's'的含义其实和十进制数115的含义是一致的。
而用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针。
2、大小不同。
用单引号引起的一个字符大小就是一个字节。
而用双引号引起的字符串大小是字符的总大小+1,因为用双引号引起的字符串会在字符串末尾添加一个二进制为0的字符'\0'。
————————————————
版权声明:本文为CSDN博主「leonharetd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/leonharetd/article/details/8665363
边栏推荐
猜你喜欢
小程序/app触底加载更多数据
ASEMI整流桥GBJ810参数,GBJ810封装,GBJ810重量
图像识别后将识别结果整理成列表,点击列表可跳转到搜索页面
BUUCTF MISC刷题笔记(二)
[漏洞复现]CVE-2018-7490(路径遍历)
ctf misc picture questions knowledge points
mysql-5.5.40的完全卸载
【LeetCode每日一题】——225.用队列实现栈
Tencent cloud server is modified to root login to install pagoda panel
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分经典题)
随机推荐
requests之防盗链学习
【KD】2022 KDD Compressing Deep Graph Neural Networks via Adversarial Knowledge Distillation
leetcode 35. 搜索插入位置(二分法+找性质也很关键)
elder blind date
requests爬取百度翻译
公司从零开发微信小程序流程
【GNN终身学习】2022 CVPR 终身图学习
leetcode 33. 搜索旋转排序数组 (二分经典题)
大学四年不努力,出社会后浑浑噩噩深感无力,辞去工作,从头开始
Arduino+2片74hc595 驱动8x8(共阳)点阵(1008BS)
The working principle of switch
ctfshow-web入门 文件上传篇部分题解
Failed to mount component: template or render function not defined.
js实现看板全屏功能
Kibana:为地图应用选择不同的语言 - Elastic Stack 8.3
gin中简单的curd接口例子
sizeof 结构体问题
Makefile中的%标记和系统通配符*的区别
JVM进程诊断利器——Arthas
这下你知道为什么程序员要和产品干架了吧?