-
C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:
(1)标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符。
(2)标识符是严格区分大小写的。例如Imooc和imooc 是两个不同的标识符。
(3)标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。
(4)标识符不能是C语言的关键字。想了解更多C语言关键字的知识,请查阅WIKI。
查看全部 -
输出水仙花数
#include <stdio.h>
int main()
{
//定义三位数num,个位数sd,十位数td,百位数hd
int num, sd, td, hd;
//循环所有三位数
for( num=100;num<1000;num++ )
{
//获取三位数字num百位上的数字
hd = num/100 ;
//获取三位数字num十位上的数字
td = num%100/10 ;
//获取三位数字num个位上的数字
sd = num%10 ;
//水仙花数的条件是什么?
if( num == sd*sd*sd+td*td*td+hd*hd*hd )
{
printf("水仙花数字:%d\n", num);
}
}
return 0;
}
查看全部 -
在for循环中,表达式1是一个或多个赋值语句,它用来控制变量的初始值;表达式2是一个关系表达式,它决定什么时候退出循环;表达式3是循环变量的步进值,定义控制循环变量每循环一次后按什么方式变化。这三部分之间用分号(;)分开
sum+=num 与 sum=sum+num
查看全部 -
C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。
1、用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。如:
2、用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。如下为静态局部变量:
注意:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。
3、为了提高效率,C语言允许将局部变量得值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。例如:
注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。
4、用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。如:
查看全部 -
在使用switch语句时还应注意以下几点:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。
查看全部 -
switch语句结构如下
其顺序如图:
查看全部 -
除法运算中注意:
如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。
取余运算中注意:
该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。
查看全部 -
printf("num[%d][%d]=%d\n",i,j,num[i][j]);
查看全部 -
float carprice(int n, int time)
{
float num;
if (n > 0 && n <= 3)
{
return num = 14;
printf("3公里以内费用为14元\n");
}
else
{
if (time >= 23 && time <= 24 || time >= 1 && time < 5)
{
return num = 13 + (n - 3) * 1.2 * 2.3+1;
printf("夜间车费为%f\n",num);
}
else
{
return num = 13 + (n - 3) * 2.3 + 1;
printf("白天路程花费%f元", num);
}
}
}
int main()
{
printf("小明每天打车总费用%f\n", carprice(12, 9) + carprice(12, 18));
return 0;
}
main函数要在被定义函数后面,不然会出现carprice(12,9)未定义标识符问题
查看全部 -
两种方法解决,第一种,将hello.c中的#include "test.c";这一行删去,在函数printLine之前加上extern(事实上可省略)使其成为外部函数,使其能被test.c调用从而在test.c中完成函数say,函数say默认为外部函数,能被(删去#include "test.c"的)hello.c调用,从而完成。
第二种,在hello.c中只将函数printLine改为外部函数使其能在test.c中被调用,而在test.c中,将函数say改为test.c的内部函数,即在其之前加上static。由于hello.c中已经包含include"test.c"所以能直接调用该函数。很重要!!!
查看全部 -
1、就是销毁,比如一个函数里面{int i=1 i++;}然后i出来就变成2但是当第下次调用这个函数的时候i=2这个值就被释放了(也就是销毁)然后i又被初始化变成了1但是如果是静态的{static int i= 1 i++}函数被第一次调用后i的值为2第二次调用的时候i等于2不被释放(也就是不被销毁)所以i此时的初始值为2这次出来变成3,下次出来变成4以此类推
2、extern声明的变量是外部变量,意义是某函数可以调用在该函数之后定义的变量,此例中即是调用main函数之后定义的x变量。
3、在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次。
查看全部 -
#include <stdio.h>
int x = 77;
void fn1()
{
printf("fn1(): x=%d\n", x);
}
int main()
{
int x = 10;
if(x>0)
{
int x = 100;
x /= 2;
printf("if语句内, x=%d\n", x);
}
printf("main方法内, x=%d\n", x);
fn1();
return 0;
}
int x=77; 标为x(1),它是整个程序的变量,全局变量
int x=10; 标为x(2),这是函数main() 中的全局变量,也是整个程序的局部变量
int x=100; 标为x(3),这是if语句中的全局变量,这也是整个程序的局部变量,但级别比x(2) 还低,被引用的范围更小。若写称 x=100;这就是给x(2)进行赋值,也就是说x(2)的值被改成100了,main()函数中使用x的位置,其值都是100
在main()函数中,运行到
fn1();
时,程序暂时跳出main()函数,去执行自定义函数fn1(),此时已经跳出了main()函数的范围,故x为x(1)的内容。
整个完整的程序中,虽然定义的变量都名为x,但对于计算机而言,是三个不同的变量,并且使用的范围也是不一样的。
int 是告诉计算机定义新变量的标识,同时确定数据类型,类似的还有char,short,long,float,double等。
查看全部 -
int age(n)
{
int num;
if(n==1)
return num=10;
else
return num=age(n-1)+2;
}
int main()
{
printf("第5个人的年龄是%d岁",age(5));
return 0;
}
这里记得最后在main函数里还要调用定义的那个函数!
查看全部 -
只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。查看全部
-
静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。查看全部
举报