我想知道单引号在C语言的具体作用
4个回答
展开全部
你这真是初学者啊,不过说实话要想把这些都讲明白还真不是一下子就能全让你明白的,它涉及到很多章节的内容,不过从主要的一点来看它们都离不开一个——函数
那我就先说说这个函数,即然你是初学者,那我就从初学的角度来讲
函数这东西估计你数学里面也学过,初中的定义是:在一个变化的过程中存在2个变量x,y,当x每取一个值,y都有唯一一个值与之对应,那么y就是x的函数。
高中时候定义换了样子,从集合的角度讲的:集合A中的每一个元素X按某种对应关系f 运算后,其值都可以在集合Y中找到,并且唯对应着唯一一个值。
其实说白了函数就是一种对应关系,比如f(x)=3x+1 那我把1送给这个函数,那它就会给我4;
我把2给它,它就给我7 。。。。 就是这样的对应关系。
那我们C语言中的函数呢,类似于数学中的函数,也是,你给它一个东西,它就给你另一样东西,至于它给你的是什么,那就看函数的具体功能是什么了。 就如上边举的例子3x+1 这就是它的具体功能,计算3x+1的值 。 扩展一下,C语言里的函数不光是算数,还可以处理如多问题,比如输出字符串。当然还有更多。
字符串这个东西你应该懂的,我们的汉字,英文字母,这些一个个的字,单词组合在一起便成了一句话,反应在计算机中,就成了字符串。
===================================================================
上面讲了点基本思想,总结一下就是函数的“对应”思想。
那我说了C语言中主要由函数组成,在这个小程序中呢有2个。一个是main一个是printf
其实你找什么是函数很简单,看括号() 每一个函数的组成都有一个“函数名”,函数名后边紧跟一对小括号()。 你看main后边,还有printf后边 是不是都能找到一对括号()? 呵呵 。别急我没说完呢。 这括号里边还有内容! 那就是“参数”
参数这东西可有可没有,你看main()这里边就没有参数吧, 再看printf()这里一大堆的东西啊。这一大堆的东西是啥?——参数。
还没完,除了参数外我们C语言的函数还少一个东西,那就是“返回值” ,在哪? 看main()前面那个东西 int 它就是返回值的类型, 注意是返回值的“类型” , 数据类型啊,你可能不知道是什么,没关系,先不管它,你只要知道int代表一个整数就行!
==============================================================
现在C语言函数的几个东西我都说齐了吧: 返回值、函数名、参数,当然别忘了小括号。 现在拿f(x)=3x+1 跟这几个词对对号吧。 先看函数名:f , 没错一个f就是函数名,你可以改成别的啊比如 g(x) = 3x+1。 函数名后边紧跟的一对小括号() ,看数学里的函数也有吧! 再来括号里会有参数的,这里面是啥?是x啊,这不难看到吧。那返回值是啥?? 没看出来,但你知道一件事,你把1给x,那f(x)就给你4 ,你把2给它,f(x)就给你7 。 这4 和7 就是返回值 。 现在能分清了吧!
===============================================================
回到C语言里面我们继续说,那就先来看main吧
int main()
{
return 0;
}
看看这一段(我把printf()先去掉了),这个main函数有自己的函数名main 有了小括号() ,它没有参数,那就不需要参数呗。 有一个返回值, 在哪,在哪?? return 0;是啥? 嗯 它就是返回值,return 英文单词“返回”的意思,return 0的意思就是返回0。 0是一个整数啊,刚才我叫你记住int 代表整数吧? 正好啊! main前的int说明了main会有一个整数的返回值 , 然后在main中就有了return 0,它告诉我们返回0这个整数。当然你可以修改程序return 1 return 2 。。。都没有毛病,但为啥偏偏写0呢? 这个问题我先不说,留到你学到函数这一章的时候自己就明白了,而且现在知不知道也不影响你的学习!至于你把return 0; 删除了当然不影响,整个程序的结果,因为它是只给main函数返回一个0值,这个值你在程序中并没有使用啊,所以不影响结果。
那么main到底是什么? 英文单词“主要的”意思,故名思议它就是“主函数”,C语言有规定,规定一个C语言程序必须从main函数开始,在main里结束。 因此你写的每一个C语言程序都要有我上边提取出来的这个模式,必须这么写才行! 你得让它有始有终啊!!
================================================================
再看这大块printf("Hello World!\n");
我上边说了函数的作用吧,你给他一个东西,它就给你一个东西在这里
printf()里面你给了它一个字符串"Hello World!\n",注意C语言里字符串要用双引号包起来,所以这里面的双引号不能丢。你把"Hello World!\n"给了printf(), 那按我们的理论printf()会实现一种功能,它的功能是啥? 运行程序! 看到了吧,它在屏幕上给你“输出”了一句话——Hello World! 然后光标另起一行。这便是它的功能。就像f(x)=3x+1这个函数的功能是给你计算“一个数的3倍再加1的结果是多少”一样。
那,你可能要问了,那f(x)=3x+1给我们的4和7反应在printf里面是什么呢? 你是问返回值吧,其实printf有返回值,只不过这个函数的返回值我们不需要,没有用,我们干嘛用它呢? 你想看它的返回值很简单,呆会我再跟你说怎么看这个返回值 。
哦对了,忘了一个东西\n 是吧? 它是一个转义字符, 说白了就是一个字符, \n是一个整体,别把\和n拆开看啊,它们是一家的,这个转义字符的作用就是“回车”就是另起一行,所以你看到光标与HELLO WORLD不在同一行啊。
=================================================================
上边终于把2个函数说完了,接下来看#include "stdio.h"
在此之前我们说一下函数的种类,C语言的函数有2种,一种是系统提供的“库函数”,另一种就是我们程序员自己编写的“自定义函数”。
~~~又来了,什么库函数啊自定义函数啊,不懂啊。
别急,先看库函数吧,C语言这么大个语言,在国际上早就有组织给它制定了标准了,由此也产生了C标准函数库这样的东西,这些标准的函数啊就是他们“专家”级别的人物为我们程序员定制的实用的,经常要使用到的函数(在此我不得不再提一下前面说到的函数可以实现一种功能,其实说白了函数就为我们提供了一种功能function这个单词的汉语意思即有“函数”又有“功能”的意思,所以你可以把函数和功能在C语言里看成一个东西,比较方便理解啦~)他们把函数的实现过程(类似于3x+1这样的东西)写好了,然后呢统一放在一个容器里。等我们程序员要用的时候呢,直接去找那个库,对,那库里面有人家为我们准备好的函数啊,我们直接用呗。那至少你得先告诉人家(人家指的是编译器,先不要管编译器是啥)那库是啥吧,要不人家找不到地方啊!
所以,就有了#include "stdio.h" 这个东西,你看你程序里面的printf()函数你用到了吧, 这个函数不是你自己写的,而且那些专家们为我们写好的函数,我们拿来直接用了,我们即然拿来了,就得告诉人家printf我们从哪里拿的啊。要不他怎么去找? 所以必须在前面#include "stdio.h" , #include这是整体,它表示程序中用到的函数可能就在这个stdio.h这个文件里面有,到时候人家去这里面找。 stdio.h这是个文件名,你可以找得到的! 嗯 差不多这里解释清了,那我再说说编译器吧,大概说一下,你写好的程序要经过编译器的编译才能变成一个EXE可执行文件, 编译的过程类似于“翻译” 就像我们把英文播译成汉语一样, 编译器呢就把我们写好的代码 翻译成10100010101010 ..,.....这样的二进制代码,进而形成那个exe可执行文件。那它翻译的时候遇见了你用的printf函数就得去找函数原型啊, 得看看你那3X+1在printf里面它咋写的啊,这才能翻译啊! 对吧。所以你得告诉编译器printf在stdio.h这文件里,你去那找它吧,肯定能找到的,找不到你回来杀了! 呵呵
================================================================
#include <stdio.h>和#include"stdio.h"的区别就是专家与程序员的区别
人家专家写好的库函数啊,在你调用的时候就用<>这样的括起来
而我们程序员自己写的自定义函数呢,你就得用"" 这东西括起来
而人专家写的库函数可以用"",就是说专家的用2种都可以<>"" 都没毛病
但你自己写的用<> 不好使。。 人专家不让你用 ,呵呵 好像有点等级歧视。。。
它的原理我也不多说,等你学到编译预处理那章的时候自己学习,我在此仅帮楼主理解。
=================================================================
自定义函数我也简单说几句吧,说白了就是你自己写的函数,你可能遇到专家没有写的函数但你确需要,这时你就得自己写这个函数,因此得名“自定义 函数” ,其实没啥神奇的,等你学厉害的时候,咱可以自己写一个printf函数,起个名叫myprintf() ,也能往屏幕上输出东西,呵呵 咱不用你专家给写的。到时候你就可以
myprintf("hello,world\n"); 这多牛B啊!!
=================================================================
终于快说完了,最后一块printf("Hello World!\n")和printf("sum=%d\n",sum)的区别。
在这一块里呢,我也会把上文说到的printf的返回值这个问题解决。
前者就是输出字符串,问题不大,关键是printf("sum=%d\n",sum) 这个可愁人
首先就是那个%d 很外星。。。 长这么磕碜。。。 你要不管它,你看它还是被""所包起来的吧,那不同的地方可就剩下,sum这2东西了, 你把它俩去掉一看,嘿,和前面的一样啊,没错,这还是printf的本质。
那这%d到底是啥呢,它和,sum又有什么关系呢?
原来,程序在运行的时候啊,它见到printf里面的%d 它就先暂停,本来它把sum=已经输出到屏幕上了,正常思维该输出%d了啊, 但事实并不是如此,程序这时会停一下,然后它跑到双引号外边去找“逗号” 找到了逗号以后呢,它把逗号后面的那个值拿出来,替换那个%d,把它输出到屏幕上,然后继续向下输出。
比如你sum的值是5 , 好了, printf在输出的时候遇到了%d,它就停了,去逗号后边找,找到了sum,因为它的值是5, 好,就把5这个值替换%d, 然后输出到屏幕上。
因此输出sum=5 然后\n使光标换行。
重头戏来了,你想看printf的返回值吧? 呵呵,可以啊,有了%d ,这个还难办到吗?
我可以先告诉你printf的返回值类型和main一样,是啥? 是int 一个整数
这个整数代表着你“所输出的字符串中字符的个数”。哼哼
想知道printf返回值是啥? 我说到这你都不用看了,自己都能算出来
printf("Hello World!\n") 这里面的字符串中的字符共有13个,那返回值是多?
13呗!不信吗? 那验证一下
#include<stdio.h>
int main(void)
{
printf("%d\n",printf("Hello World!\n"));
return 0;
}
你运行看看结果是多少?
=====================================================
上面那程序不理解吗? 不难理解啊, 我说的printf遇到%d暂停,不输出,而是去逗号后边找,找到printf("Hello World!\n"), 那么它是一个函数调用啊,它有一个返回值啊,它把这个返回值替换了那个%d,输出到屏幕上,所以你得到了printf的返回值。
如果我对这个程序不理解那改一下
#include<stdio.h>
int main(void)
{
int sum;
sum = printf("Hello World!\n");
printf("%d\n",sum);
return 0;
}
sum接收printf的返回值 ,你看呀, sum = printf("Hello World!\n"); 像不像
y = 3x+1 ?? 这简直是一样的!!
看看。结束了,差不多该说的都说了,呵呵, 这回对C 语言有了新的认识吧
其实,整个C语言程序就是函数组成的,所以我在此就先对函数进行说明
等你学到函数那一章的时候,估计也不会很费劲了
但记住,函数并不是C语言的灵魂之处,它的灵魂是指针!
那我就先说说这个函数,即然你是初学者,那我就从初学的角度来讲
函数这东西估计你数学里面也学过,初中的定义是:在一个变化的过程中存在2个变量x,y,当x每取一个值,y都有唯一一个值与之对应,那么y就是x的函数。
高中时候定义换了样子,从集合的角度讲的:集合A中的每一个元素X按某种对应关系f 运算后,其值都可以在集合Y中找到,并且唯对应着唯一一个值。
其实说白了函数就是一种对应关系,比如f(x)=3x+1 那我把1送给这个函数,那它就会给我4;
我把2给它,它就给我7 。。。。 就是这样的对应关系。
那我们C语言中的函数呢,类似于数学中的函数,也是,你给它一个东西,它就给你另一样东西,至于它给你的是什么,那就看函数的具体功能是什么了。 就如上边举的例子3x+1 这就是它的具体功能,计算3x+1的值 。 扩展一下,C语言里的函数不光是算数,还可以处理如多问题,比如输出字符串。当然还有更多。
字符串这个东西你应该懂的,我们的汉字,英文字母,这些一个个的字,单词组合在一起便成了一句话,反应在计算机中,就成了字符串。
===================================================================
上面讲了点基本思想,总结一下就是函数的“对应”思想。
那我说了C语言中主要由函数组成,在这个小程序中呢有2个。一个是main一个是printf
其实你找什么是函数很简单,看括号() 每一个函数的组成都有一个“函数名”,函数名后边紧跟一对小括号()。 你看main后边,还有printf后边 是不是都能找到一对括号()? 呵呵 。别急我没说完呢。 这括号里边还有内容! 那就是“参数”
参数这东西可有可没有,你看main()这里边就没有参数吧, 再看printf()这里一大堆的东西啊。这一大堆的东西是啥?——参数。
还没完,除了参数外我们C语言的函数还少一个东西,那就是“返回值” ,在哪? 看main()前面那个东西 int 它就是返回值的类型, 注意是返回值的“类型” , 数据类型啊,你可能不知道是什么,没关系,先不管它,你只要知道int代表一个整数就行!
==============================================================
现在C语言函数的几个东西我都说齐了吧: 返回值、函数名、参数,当然别忘了小括号。 现在拿f(x)=3x+1 跟这几个词对对号吧。 先看函数名:f , 没错一个f就是函数名,你可以改成别的啊比如 g(x) = 3x+1。 函数名后边紧跟的一对小括号() ,看数学里的函数也有吧! 再来括号里会有参数的,这里面是啥?是x啊,这不难看到吧。那返回值是啥?? 没看出来,但你知道一件事,你把1给x,那f(x)就给你4 ,你把2给它,f(x)就给你7 。 这4 和7 就是返回值 。 现在能分清了吧!
===============================================================
回到C语言里面我们继续说,那就先来看main吧
int main()
{
return 0;
}
看看这一段(我把printf()先去掉了),这个main函数有自己的函数名main 有了小括号() ,它没有参数,那就不需要参数呗。 有一个返回值, 在哪,在哪?? return 0;是啥? 嗯 它就是返回值,return 英文单词“返回”的意思,return 0的意思就是返回0。 0是一个整数啊,刚才我叫你记住int 代表整数吧? 正好啊! main前的int说明了main会有一个整数的返回值 , 然后在main中就有了return 0,它告诉我们返回0这个整数。当然你可以修改程序return 1 return 2 。。。都没有毛病,但为啥偏偏写0呢? 这个问题我先不说,留到你学到函数这一章的时候自己就明白了,而且现在知不知道也不影响你的学习!至于你把return 0; 删除了当然不影响,整个程序的结果,因为它是只给main函数返回一个0值,这个值你在程序中并没有使用啊,所以不影响结果。
那么main到底是什么? 英文单词“主要的”意思,故名思议它就是“主函数”,C语言有规定,规定一个C语言程序必须从main函数开始,在main里结束。 因此你写的每一个C语言程序都要有我上边提取出来的这个模式,必须这么写才行! 你得让它有始有终啊!!
================================================================
再看这大块printf("Hello World!\n");
我上边说了函数的作用吧,你给他一个东西,它就给你一个东西在这里
printf()里面你给了它一个字符串"Hello World!\n",注意C语言里字符串要用双引号包起来,所以这里面的双引号不能丢。你把"Hello World!\n"给了printf(), 那按我们的理论printf()会实现一种功能,它的功能是啥? 运行程序! 看到了吧,它在屏幕上给你“输出”了一句话——Hello World! 然后光标另起一行。这便是它的功能。就像f(x)=3x+1这个函数的功能是给你计算“一个数的3倍再加1的结果是多少”一样。
那,你可能要问了,那f(x)=3x+1给我们的4和7反应在printf里面是什么呢? 你是问返回值吧,其实printf有返回值,只不过这个函数的返回值我们不需要,没有用,我们干嘛用它呢? 你想看它的返回值很简单,呆会我再跟你说怎么看这个返回值 。
哦对了,忘了一个东西\n 是吧? 它是一个转义字符, 说白了就是一个字符, \n是一个整体,别把\和n拆开看啊,它们是一家的,这个转义字符的作用就是“回车”就是另起一行,所以你看到光标与HELLO WORLD不在同一行啊。
=================================================================
上边终于把2个函数说完了,接下来看#include "stdio.h"
在此之前我们说一下函数的种类,C语言的函数有2种,一种是系统提供的“库函数”,另一种就是我们程序员自己编写的“自定义函数”。
~~~又来了,什么库函数啊自定义函数啊,不懂啊。
别急,先看库函数吧,C语言这么大个语言,在国际上早就有组织给它制定了标准了,由此也产生了C标准函数库这样的东西,这些标准的函数啊就是他们“专家”级别的人物为我们程序员定制的实用的,经常要使用到的函数(在此我不得不再提一下前面说到的函数可以实现一种功能,其实说白了函数就为我们提供了一种功能function这个单词的汉语意思即有“函数”又有“功能”的意思,所以你可以把函数和功能在C语言里看成一个东西,比较方便理解啦~)他们把函数的实现过程(类似于3x+1这样的东西)写好了,然后呢统一放在一个容器里。等我们程序员要用的时候呢,直接去找那个库,对,那库里面有人家为我们准备好的函数啊,我们直接用呗。那至少你得先告诉人家(人家指的是编译器,先不要管编译器是啥)那库是啥吧,要不人家找不到地方啊!
所以,就有了#include "stdio.h" 这个东西,你看你程序里面的printf()函数你用到了吧, 这个函数不是你自己写的,而且那些专家们为我们写好的函数,我们拿来直接用了,我们即然拿来了,就得告诉人家printf我们从哪里拿的啊。要不他怎么去找? 所以必须在前面#include "stdio.h" , #include这是整体,它表示程序中用到的函数可能就在这个stdio.h这个文件里面有,到时候人家去这里面找。 stdio.h这是个文件名,你可以找得到的! 嗯 差不多这里解释清了,那我再说说编译器吧,大概说一下,你写好的程序要经过编译器的编译才能变成一个EXE可执行文件, 编译的过程类似于“翻译” 就像我们把英文播译成汉语一样, 编译器呢就把我们写好的代码 翻译成10100010101010 ..,.....这样的二进制代码,进而形成那个exe可执行文件。那它翻译的时候遇见了你用的printf函数就得去找函数原型啊, 得看看你那3X+1在printf里面它咋写的啊,这才能翻译啊! 对吧。所以你得告诉编译器printf在stdio.h这文件里,你去那找它吧,肯定能找到的,找不到你回来杀了! 呵呵
================================================================
#include <stdio.h>和#include"stdio.h"的区别就是专家与程序员的区别
人家专家写好的库函数啊,在你调用的时候就用<>这样的括起来
而我们程序员自己写的自定义函数呢,你就得用"" 这东西括起来
而人专家写的库函数可以用"",就是说专家的用2种都可以<>"" 都没毛病
但你自己写的用<> 不好使。。 人专家不让你用 ,呵呵 好像有点等级歧视。。。
它的原理我也不多说,等你学到编译预处理那章的时候自己学习,我在此仅帮楼主理解。
=================================================================
自定义函数我也简单说几句吧,说白了就是你自己写的函数,你可能遇到专家没有写的函数但你确需要,这时你就得自己写这个函数,因此得名“自定义 函数” ,其实没啥神奇的,等你学厉害的时候,咱可以自己写一个printf函数,起个名叫myprintf() ,也能往屏幕上输出东西,呵呵 咱不用你专家给写的。到时候你就可以
myprintf("hello,world\n"); 这多牛B啊!!
=================================================================
终于快说完了,最后一块printf("Hello World!\n")和printf("sum=%d\n",sum)的区别。
在这一块里呢,我也会把上文说到的printf的返回值这个问题解决。
前者就是输出字符串,问题不大,关键是printf("sum=%d\n",sum) 这个可愁人
首先就是那个%d 很外星。。。 长这么磕碜。。。 你要不管它,你看它还是被""所包起来的吧,那不同的地方可就剩下,sum这2东西了, 你把它俩去掉一看,嘿,和前面的一样啊,没错,这还是printf的本质。
那这%d到底是啥呢,它和,sum又有什么关系呢?
原来,程序在运行的时候啊,它见到printf里面的%d 它就先暂停,本来它把sum=已经输出到屏幕上了,正常思维该输出%d了啊, 但事实并不是如此,程序这时会停一下,然后它跑到双引号外边去找“逗号” 找到了逗号以后呢,它把逗号后面的那个值拿出来,替换那个%d,把它输出到屏幕上,然后继续向下输出。
比如你sum的值是5 , 好了, printf在输出的时候遇到了%d,它就停了,去逗号后边找,找到了sum,因为它的值是5, 好,就把5这个值替换%d, 然后输出到屏幕上。
因此输出sum=5 然后\n使光标换行。
重头戏来了,你想看printf的返回值吧? 呵呵,可以啊,有了%d ,这个还难办到吗?
我可以先告诉你printf的返回值类型和main一样,是啥? 是int 一个整数
这个整数代表着你“所输出的字符串中字符的个数”。哼哼
想知道printf返回值是啥? 我说到这你都不用看了,自己都能算出来
printf("Hello World!\n") 这里面的字符串中的字符共有13个,那返回值是多?
13呗!不信吗? 那验证一下
#include<stdio.h>
int main(void)
{
printf("%d\n",printf("Hello World!\n"));
return 0;
}
你运行看看结果是多少?
=====================================================
上面那程序不理解吗? 不难理解啊, 我说的printf遇到%d暂停,不输出,而是去逗号后边找,找到printf("Hello World!\n"), 那么它是一个函数调用啊,它有一个返回值啊,它把这个返回值替换了那个%d,输出到屏幕上,所以你得到了printf的返回值。
如果我对这个程序不理解那改一下
#include<stdio.h>
int main(void)
{
int sum;
sum = printf("Hello World!\n");
printf("%d\n",sum);
return 0;
}
sum接收printf的返回值 ,你看呀, sum = printf("Hello World!\n"); 像不像
y = 3x+1 ?? 这简直是一样的!!
看看。结束了,差不多该说的都说了,呵呵, 这回对C 语言有了新的认识吧
其实,整个C语言程序就是函数组成的,所以我在此就先对函数进行说明
等你学到函数那一章的时候,估计也不会很费劲了
但记住,函数并不是C语言的灵魂之处,它的灵魂是指针!
展开全部
单引号括起来的字符代表ascii码值 如'a'等于97
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表示一个字符常量,如't'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单引号 字符
双引号 字符串。
双引号 字符串。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询