十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
函数返回值类型由函数头部的返回值类型决定
创新互联2013年开创至今,先为丰泽等服务建站,丰泽等地企业,进行企业商务咨询服务。为丰泽企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
例如
函数头部为int f(),这样的话,返回值类型为int型;又如头部为double f()的话,返回值类型为double型;头部为char *f()的话,返回值为char *,即指向char的指针
特别的,如果函数头部没有显示的说明返回值类型,则在C中一般是默认当作返回int型,如f(),则返回值类型为int型
无返回值需声明(void),否则在定义函数的时候需说明返回值类型(如intmain()),在有返回值的函数中必然存在return语句,。如果不需要返回值,可用return-1;
在c语言中用没有函数判定一个变量的类型,可以使用sizeof来判断变量大小。
示例:
#include stdio.h
#include stdlib.h
int main(int argc,char **argv) //主程序
{
//对C语言内置类型的所占字节数的测试
printf("size of char is: %d\n",sizeof(char)); //字符型数据所占字节数 、
printf("size of short is: %d\n",sizeof(short)); //短整形数据所占字节数
printf("size of int is: %d\n",sizeof(int )); //整形数据
printf("size of short int is: %d\n",sizeof(short int)); //短整形
printf("size of long int is: %d\n",sizeof(long int)); //长整形数据
printf("size of float is: %d\n",sizeof(float)); //浮点型数据
printf("size of double is: %d\n",sizeof(double)); //双精度数据
//对字符及字符串数组所占字节数的测量
char a[] ={'a','b','c','d','e'};
printf("size of a[] is: %d\n",sizeof(a)); //输出数组a[]所占字节数
char b[]={"abcde"}; //初始化字符串b
printf("size of b[] is: %d\n",sizeof(b)); //数组b[]
char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}}; //初始化二维字符型数组
printf("size of c[][] is: %d\n",sizeof(c)); //二维数组c所占字节数
printf("size of c[0] is: %d\n",sizeof(c[0])); //二维数组中的某行所占的字节数,例如第0行
printf("size of c[0][0] is: %d\n",sizeof(c[0][0])); //某行某个元素,例如第0行第0个元素
//对指针所占字节数的测量
char *p=0;
printf("size of *p is: %d\n",sizeof(p)); //字符型指针
system("pause");
return 0;
}
扩展资料
使用sizeof()计算数组长度
将sizeof用于 expr是并没有计算expr的值。特别是在sizeof *p中,指针p可以是一个无效地址,因为不需要对p做解引用操作。
对char类型或值为char类型的表达式做sizeof操作结果为1。对引用类型做sizeof操作,将返回存放此引用类型对象所需的内存空间大小。
对指针做sizeof操作,将返回存放指针所需的内存大小,注意,如果要获取该指针指向对象的大小,则必须对该指针进行解引用。对数组做sizeof操作等效于对其元素做sizeof操作的结果乘上数组元素的个数。
因为sizeof返回整个数组在内存中的存储长度,所以用sizeof数组的结果初一sizeof其元素类型的结果,即可求出数组元素的个数:int sz = sizeof(ia)/sizeof(*ia);
通常将8位的块作为一个字节,32位或4个字节作为一个 “字”。一般的short为半个机器字长,int为一个机器字长。
你的想法是没错,但是程序写错了
正确的 for(i=2;i=sqrt(n);i++)
if(n%i==0)return 0;
return 1;
代表
for(i=2;i=sqrt(n);i++)
{
if(n%i==0){
return 0;
}
}
return 1; //是在for结束后进行的
而你的。你应该明白了吧,第一次就会return 1跳出。每有全算一遍
值传递,调用函数的时候传给调用函数的是变量的值,例如:
定义 max函数:
int max(int a,int b){
if(ab) return a;
else return b;
}
调用max函数的时候这样调用:
int a=1;
int b=2;
int m;
m = max(a,b);
址传递调用函数的时候传给调用函数的是变量的地址,例如:
定义交换函数:
void swap(int *a,int *b){
int t;
t = *a;
*a = *b;
*b = t;
}
调用swap函数的时候这样调用:
int a=1;
int b=2;
swap(a,b);
调用swap函数后,a,b中的值进行了交换。
注意:这里的int可以换成其他类型的数据,比如double,char甚至指针类型。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include stdio.h
int sushu(int x)
{
int i,flage=0;
for (i=2;ix;i++)
{
if (x%i==0)
{
break;
}
}
if (i==x)
{
flage=1;
}
return flage;
}
int main()
{
int i,sum=0,c;
for (i=100;i200;i++)
{
c=sushu(i);
if (c0)
{
printf("%-4d",i);
sum=sum+i;
}
}
printf("\n素数和是:%d\n",sum);
return 0;
}