基本功
一.数据类型:
在C语言中,有数据类型这一说法。为何有这一说法?是因为在现实生活中存在着不同的数据,(例如整数,小数,字符即a b c d , . ; " 之类)。由于计算机中所有的数据都是由01串来表示的,所以数据类型的出现就很明显了,它可以知道你输入的数据到底是表示了什么,是表示整数呢,小数呢还是字符。
好好理解一下,然后,,,上图:
此时的你看基本类型那一栏就好。注:浮点型即我上面说过的用来存储小数的。从上图可以发现,在整型之后,还存在三个类型,为什么还需要三个类型,整型用一个类型来表示不就好了吗?不是的,的确,它们都能存储整数,但是,它们存储的整数的大小是不一样的,。各个类型的取值范围如下:ps.如果你存储的值超出你所取得数据类型的取值范围程序会出错。
1. char -128 ~ +127 (1 Byte)
2. short -32768 ~ + 32767 (2 Bytes)
3. unsigned short 0 ~ 65535 (2 Bytes)
4. int -2147483648 ~ +2147483647 (4 Bytes)
5. unsigned int 0 ~ 4294967295 (4 Bytes)
6. long long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)
7. double -1.7 * 10^-308 -1.7 * 10^308(8 Bytes)
由上面可以看到,出现了一个陌生的名词“unsigned”,它代表着在它之后的那个类型不存在负数,这样可以使数据范围扩大一倍,例如上面的2和3。
可以反思,为什么一个整数可以有这么多类型来表示,直接用 “ long long ”来表示一个整数不就行了吗?范围这么大,如果想表示一个很大的数也不容易出错。
为什么,因为计算机的内存是宝贵的,如果你只需要存0到65536之间的数,那用long long类型也太大材小用了。而用unsigned short 则刚好合适。
下面举出实际的C程序:也要自己写一下比较好@.@。
1 /* 1在C语言程序中,所有的变量都需要被定义类型之 2 才能使用下面是定义的过程:在定义的过程中已经 3 给变量分配了此类型应该有的储存空间。如果上述名词 4 有不懂得地方,敬请百度 */ 5 // 2双斜线(//)注释掉一行如2,/*...*/ 可以注释掉多行,如1; 6 // 2注释之后的类容不参与程序运行,可以删去。 7 8 #include<stdio.h> //2必须的头文件 9 int main() //2必须的主函数 10 { 11 12 int a,b,c; //2定义了a,b,c三个整型变量。 13 double e; //2定义了一个double双精度类型变量。 14 }
二.输入输出语句。
当然上面的程序是没有问题的。但是运行是不会有任何结果的,为什么呢?因为你还不知道输入输出语句。一个经典的程序。运行一个程序,让它能输出“Hello World”,无引号。
运行结果如图:
运行代码:
1 #include <stdio.h> 2 int main() 3 { 4 printf("Hello world! "); //输出语句 5 return 0; 6 }
好,现在提出如下问题,怎么输入一个整数,一问:再把这个数输出出来,二问:如果我想让输出的结果加一呢?
明确一下步骤
1.定义一个变量
2.从键盘上输入一个数字,把这个数字传给变量
3.按下回车,屏幕上显示想要的结果
运行结果:
1.从键盘上输入 12345
2.按一下回车,输出12345
运行代码:
1 #include <stdio.h> 2 int main() 3 { 4 int a; //1.定义一个整型的变量a 5 scanf("%d",&a);//2.输入语句,从键盘上输入a的值 6 printf("%d",a);//3.输出语句,从屏幕上显示a的值 7 return 0; 8 }
从上面的代码中,我们又发现了一些陌生的东西: scanf ,printf ,%d, &,这些是什么鬼。。。
一一道来: 1.scanf 是什么?我很想说,百度一下,其实这个百度一下真的能让你明白,所以,百度一下。
2.同理,百度一下。只要搜对关键字,这都能解决。
3.%d是什么,这是一个格式控制符,%d代表下面将输入或输出一个整数。于是下面就出现了这个表。。。
4.为什么scanf里面有个&符号,而printf里面没有?因为&是一个寻址符号,它能够找到变量a所代表的存储空间的地址,同理不懂可以把有关类容直接复制百度,你会得到你想要的。
下面做第二问是不是感觉会很轻松呢?我直接附上代码和结果。
运行结果:
1 #include <stdio.h> 2 int main() 3 { 4 int a; //1.定义一个整型的变量a 5 scanf("%d",&a);//2.输入语句,从键盘上输入a的值 6 a=a+1;//把a这个数的值加一,然后再赋值给原来的a。 7 printf("%d",a);//3.输出语句,从屏幕上显示a的值 8 return 0; 9 }
运行结果:
好了,基础功就这些了吧。
课后题目:
从键盘中输入两个数,两数之间用空格隔开,按回车,然后出现两个数的和。
运行结果:
所写的文章基本没有怎么用颜色标注,一个是比较懒,还有就是都觉得挺重要的。
代码就自己写写吧,自己多练习。记得,不懂可以多百度......