c语言基础(一)
来源:互联网 发布:南财网络教育平台 编辑:程序博客网 时间:2024/05/29 11:49
c语言
1、 函数指针: 函数名称代表一段函数字节码
#include <stdio.h>void sayHello() { printf("Hello \n");}void sayHello1(int i) { printf("Hello %d\n", i);}int main(int argc, const char* argv[]) { void (*p)(); void (*p1)(int); p = sayHello; p1 = sayHello1; p(); p1(98); return 0;}
2、 define
宏定义, 编译使进行替换,如果define定义的是一个可单独执行的函数,则需要分号结尾,否则不需要,对应使用的地方也一样
#define NUM 6#define ObjectDelete(obj) {\ // 定义ObjectDelete函数,obj为参数 obj -> onDelete(obj);\ free(obj);\}#define ObjectField void(*onDelete)(void*);
3、 typedef: 类型定义,结尾用分号
typedef unsigned long int pthread_t; -> pthread_t t;typedef struct(结构体的名称可有可无) {int age;}People; -> People p; p.age = 13;typedef void (*Func)(); // 代表返回值为void, 无传入参数的函数 -> Func f = sayHello; f();
4、 结构体:
struct stuff {char job[20];}Huqinwei; -> struct stuff{char job[20];}; struct stuff Huqinwei;
5、 void和void *
1). void: 表示”空类型”,不表示”任意类型”,而是表示不存在,即不允许写void a,不存在类型为void的东西。
a. void作为返回值: 如 void functionNot() {}表示函数返回值不存在。在c语言中,凡是不加返回值类型限定的函数,就会被编译器作为返回整型值处理,而不是没有返回值。在c++中,每个函数必须限定返回值类型,不允许不加返回值限定
b. void作为函数的参数: 如 void functionNot(void){} 表示函数形参不存在,即函数没有形参。
2). void *: 表示”空类型指针”,表示”任意类型的指针”或表示”该指针与一地址值有关”,但是不清楚在此地址上的对象类型
6、 指针的初始化和赋值
1. 初始化:在初始化时,”=”右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int *p = 0除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思
阅读全文
0 0
- c语言基础(一)
- C语言基础(一)
- C语言基础(一)
- C语言基础(一)
- C语言基础(一)
- C 语言基础(一)
- c语言基础(一)
- C语言基础(一)
- C语言基础(一)
- c语言基础(一)
- C语言基础(一)
- c语言基础(一)
- c语言基础 一
- C语言基础一
- C语言基础一
- 一---c语言基础
- C语言基础一
- C语言基础(一)
- Hibernate(三)---通过Session操纵持久化对象
- 内存地址问题总结
- oracle统计
- unity InputFied.onValuechanged 应用
- JS监听手机返回键
- c语言基础(一)
- python实现二分搜索树以及改进后的AVL Tree
- hdoj 1013 Digital roots (陷阱水题)
- 数据样本不平衡问题处理方法
- cc1plus.exe: out of memory allocating 3077145919 bytes
- js拼装html无法触发事件
- ios 导航栏的一些理解
- JBPN的认识和特点、工作流程、发展状况
- 数据库设计三范式(nomorlization)