黑马程序员——C语言函数篇

时间:2020-11-30 00:26:07

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

函数的使用:

1、实参个数必须等于形参个数。

2、函数体内部不能定义和函数形参一样的变量。

3、如果是基本数据类型作为函数形参,纯粹是值传递。修改函数内部形参的值,不会影响外面实参的值。

4、一个函数可以没有形参,例如main函数。也可以有无限形参。

<span style="font-size:18px;">#include <stdio.h>
int sum(int num1, int num2)
{
num1 = 50; //不能写为 int num1 = 50;
ruturn num1 + num2;
}
int main()
{
int a = 100;
int b = 20;
int c = sum(a, b); // 调用函数求和
printf(“a = %d, b = %d, c = %d \n”, a, b, c);
return 0;

} /*输出结果为a = 100,b = 20,c = 70,实参传递给形参,在函数内计算,然后返回函数值。 形参:定义函数时函数后面的参数。实参:函数调用时传入的具体数据。*/</span>

return的用法:

1、退出函数

2、返回一个具体值给函数调用者。

 若定义函数voidtest() 表示函数没有返回值。可以写成

<span style="font-size:18px;">void test()  
{
return; // 但不能写成return 0;
}</span><span style="font-size:14px;">
</span>

就算声明了返回值类型,也可以不返回任何值。

若不定义函数返回类型,默认为int型。


函数使用注意:

函数不能嵌套定义(即函数里面定义新函数)。 不允许函数名称一样。

 函数声明,要写在main函数前面。例如:

<span style="font-size:18px;">#include <stdio.h>
void test(); /*提前声明函数或者声明写在main函数中,但一定要在调用之前声明,才能将函数的定义写在main函数后面。可以重复声明。*/
int main()
{
test();
return 0;
}
void test()
{
printf(“------------------\n”);
}</span><span style="font-size:14px; ">
</span>


#include <stdio.h> 的使用。

1、拷贝右边文件的所有内容到#include所在的位置。例如#include”ab.txt”。

2、义的文件用””。系统自带的文件用<> 。

3、#include<stdio.h>的目的是拷贝printf等函数的声明。

<span style="font-size:18px;">#include <stdio.h>
int main()
{
#include”ab.txt” /*b.txt要和.c文件在一个文件夹内。否则要用根目录调用它, 这样就会把ab.txt里面的东西复制到这里并显示出来。*/
return 0;
}</span><span style="font-size:14px;">
</span>

多文件团队开发:

把项目中所有相关联的.o目标文件、c语言函数库合并在一起生成可执行文件。叫链接。

1、 函数的定义放.c文件,函数的声明放.h文件。

2、 如果要使用某个.c文件中定义的函数,只需要#include这个.c文件对应的.h文件。

3、.h的文件只有一个作用,被别人拷贝。编译链接的时候不用编译链接.h。

printf 的一个用法

<span style="font-size:18px;">#include<stdio.h>
int main()
{
int a = printf(“haha\n”);
printf("a = %d",a); /*结果为a = 5 printf返回字符串的字符长度,一个汉字占3个字符。\n为转义字符,占一个。例如\t, 要输出双引号要用 \” */ 。
return 0;
}</span><span style="font-size:24px;">
</span>

进制:

#include <stdio.h>int main()
{
int num1 = 10; // 默认为十进制数
int num2 = 0b1010; // 带0b(B)的为二进制。
int num3 = 014; // 加0代表八进制。
int num4 = 0xc; // 加0x(X)为十六进制。
ruturn 0;
}

%d或者%i 十进制输出。%o 八进制输出。 %x十六进制输出。%c输出字符。%p输出地址。 %f输出小数。

 判断数字定义:15.4e6 ==15.4乘以10的六次方   

位运算实例:

#include <stdio.h>
int main()
{
void printbits(int num);
printbits(9);
return 0;
}
void printbits(int num)
{
int i = (sizeof(num)<<3 ) - 1 /*先用sizeof求出num所占字节数,然后左移3位(即乘以8,一个字节占8位),再减去1*/
while(i>=0)
{
int j = (num>>i)&1; // 右移i位然后与1按位与,即可得到本位。
printf(“%d”,j); // 将这一位输出
i--;
if((i+1)%4 == 0)
{  printf(" ");} //满四位空一格}printf("\n");}