b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c 计算结构体大小 C语言学习入门(7)

电脑杂谈  发布时间:2017-12-25 13:05:49  来源:网络整理

if (*str >= ‘a’ && *str <= ‘z’) {

//变为大写字母。小写和大写字母的ASCII值有个固定的差值

*str -= ‘a’ - ‘A’;

}

//遍历下一个字符

str++;

}

//返回字符串

return dest;

}

intmain()

{

//定义一个字符串变量

charstr[] =“lmj”;

//调用函数

char*dest =upper(str);

printf(”%s”, dest);

printf(”%s”, str);

return0;

}

指向函数的指针

定义的一般形式:函数的返回值类型(*指针变量名)(形式参数1,形式参数2, …);

注意:形式参数的变量名可以省略,甚至整个形式参数列表都可以省略

intsum(inta,intb)

{

returna + b;

}

int main()

{

int(*q) (inta,intb) =sum;// (int a, int b)可以写成(int a, int)或(int,int)或()

intresult = (*q)(2,5);//调用函数

printf(“\n%d”, result)

return 0;

}

将函数作为参数

voidget(int(*q)(inta,charb),floatc) {}

预处理指令

1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),

产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译

2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号”#“开头,并且结尾不用分号

3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。

习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件

不带参数的宏定义

#define宏名字符串

比如#define ABC 10

右边的字符串也可以省略,比如#define ABC

它的作用是在编译预处理时,将源程序中所有”宏名”替换成右边的”字符串”,常用来定义常量

宏名的有效范围是从定义位置到文件结束。如果需要终止宏定义的作用域,可以用#undef ABC命令

宏名一般用大写字母,以便与变量名区别开来,但用小写也没有语法错误

定义一个宏时可以引用已经定义的宏名

#define R 3.0

#define PI 3.14

#define L 2*PI*R

带参数的宏定义

#define宏名(参数列表)字符串

在编译预处理时,将源程序中所有宏名替换成字符串,并且将字符串中的参数用宏名右边参数列表中的参数替换

#include <stdio.h>

#define average(a, b) (a+b)/2

int main ()

{

int a = average(10, 4); // 替换成 (10+4)/2

printf(“平均值:%d”, a);

return 0;

}

宏名和参数列表之间不能有空格,否则空格后面的所有字符串都作为替换的字符串

#define R (a) (a+5)

voidtest()

{

inta = R(5); //这时替换的结果是: int a = (a) (a+5)(5);

printf(”%d\n”, a);

}

带参数的宏在展开时,只作简单的字符和参数的替换,不进行任何计算操作。

所以在定义宏时,一般用一个小括号括住字符串的参数或结果

记住替换的原则是在预编译时


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-55787-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 程雷雨
      程雷雨

      第二天早上便领着儿子去看了

    热点图片
    拼命载入中...