C语言中的类型转换 |
您所在的位置:网站首页 › c字符串转化为整数 › C语言中的类型转换 |
在讲类型转换之前,我们先要理解下C语言中单引号和双引号的区别。 先讲双引号,双引号就是字符串,我们要证实我们的想法,我选择写一段代码看看开: #include int main() { printf("hello,world1"); return 0; } 然后我们编译运行看看输出什么: hello,world1
我们的字符串被运行了。我学过Python,前端,我的潜意识认为单引号('')的含义也是代表字符串。让我们试试 我们再写一段代码: #include int main() { printf('1'); return 0; } 然后我编译运行,看输出信息: rgument is of type ‘int’ extern int printf (const char *__restrict __format, ...); 我们发现报错了。 从这里我们发现单引号和双引号是有区别的,我们再来写一段代码: #include int main() { printf("%d",'1'); return 0; } 然后我编译运行,看输出信息: 49 输出的并不是1,而是49。 我对这里很眼熟,有可能刚学习编程的人不知道这是什么。这个49就是ASCII码 00110001 49 31 1这条信息的来源源自于:http://www.asciima.com/ 自己去查就知道了。 通过我们的实践告诉我们,双引号是字符串,单引号是字符,输出的是ASCII码。并不是表面看到的那样。 现在我们理解了这个。 下面我们来看这么一句话,我相信学习过C语言的人肯定接触过[c-'0'] 它到底是什么意思?怎么这么困扰?今天我们来揭开它的真实面纱。 我们还是来实践,用代码说话: #include int main() { printf("%d",'3'-'0'); return 0; } 这里都是单引号,我前面讲了,单引号输出对应的ASCII码,这里还是ASCII码吗? 我编译运行看下输出结果: 3 是不是有点惊讶。竟然是3。打开ASCII表,我们看到3的位置是51,0的位置是48。51-48=3,很合理。 下面我们开始讲解我们的类型转换,我直接上代码,不废话。 #include int atoi(char s[]) //定义atoi函数,函数()里面的是char类型的数组 { int i,n=0; for(i=0;s[i]>='0' && s[i] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |