C函数及指针学习1
2014-04-26 11:26
211 查看
1 大段程序注释的方法
3 字面值(常量)在整型号字面值后加 字符L (long),U(unsigned)说明字符常量 为长整型 或(和)有无符号0开头为 8进制0x开头为 16进制字符常量始终为int类型,不能加后缀字符常量用单引号,包括 单引号包围的单字符,转义字符,三字母词多字节字符常量前面加 L,为宽字符常量宽字节就是用2个字节来表示一个汉字或字符
4typedf
5 const
怎样分析:
6作用域文件作用域,函数作用域,代码块作用域,原型作用域。代码块作用域:代码块 :{}之间的所有语句内层代码块 有一个标识符与外层代码块同名时,内层无法访问到外层代码块的那个标识符。
7链接属性(链接阶段)external(外部)internal(内部)none (无)关键字 extern static 用于更改标识符的链接属性
8 存储类型 (关系到内存何时分配)静态:静态内存 内存在程序运行前分配,直到运行完动态:堆栈 在函数运行时分配,运行完收回寄存器 register (为动态变量)关键字 static auto register函数的形参不能声明为静态
static 在代码块外或函数声明 用于更改标识符的链接属性static 在代码块内的变量定义 用于更改存储类型
来自为知笔记(Wiz)
#if 0 #endif2三字母词以两个问号 开始的都要注意
3 字面值(常量)在整型号字面值后加 字符L (long),U(unsigned)说明字符常量 为长整型 或(和)有无符号0开头为 8进制0x开头为 16进制字符常量始终为int类型,不能加后缀字符常量用单引号,包括 单引号包围的单字符,转义字符,三字母词多字节字符常量前面加 L,为宽字符常量宽字节就是用2个字节来表示一个汉字或字符
wchar_t wch[] = L"abc"; // wch就是一个宽字节的数组,L"abc",就是宽字节常量,由于 "abc",不是宽字节的,加L在前面就令它成为宽字节常量,你可以看看L其实是一个宏来的
4typedf
char *ptr//ptr为指向字符的指针 typedf char *ptr; ptr a;//a为指向字符的指针
5 const
int const a 和const int a 是一样的 int const *p;//指向整型常量的指针,指针可变,指针指向的值不可变 int *const p;//指向整型的指针常量,指针不可变,指向的值是可变的
怎样分析:
int const 均为类型转化运算符 *为指针运算符,优先级相同,结合方向自右向左 int const *p;//指向整型常量的指针,指针可变,指针指向的值不可变 p为指针 *p指针指向的值 const *p 指针指向的值为 const int const *p 这个常量为整型连起就是:指向整型常量的指针
int *const p;//指向整型的指针常量,指针不可变,指向的值是可变的 p为指针 const p 指针为常量 *const p 指针指向的值 int *const p 指针指向的值为整型连起来就是:指向整型的指针常量
6作用域文件作用域,函数作用域,代码块作用域,原型作用域。代码块作用域:代码块 :{}之间的所有语句内层代码块 有一个标识符与外层代码块同名时,内层无法访问到外层代码块的那个标识符。
7链接属性(链接阶段)external(外部)internal(内部)none (无)关键字 extern static 用于更改标识符的链接属性
8 存储类型 (关系到内存何时分配)静态:静态内存 内存在程序运行前分配,直到运行完动态:堆栈 在函数运行时分配,运行完收回寄存器 register (为动态变量)关键字 static auto register函数的形参不能声明为静态
static 在代码块外或函数声明 用于更改标识符的链接属性static 在代码块内的变量定义 用于更改存储类型
int a=5;//代码块外 链接属性为 external, 存储属性:静态,作用域:整个文件作用域 extern int b;//extern 可不用,链接属性为 external, 存储属性:静态,作用域:整个文件作用域 static int c;,链接属性为internal , 存储属性:静态,作用域:整个文件作用域 //a b c 的存储类型均为静态,在执行之前时分配内存,直到程序结束 //a b 链接属性为 external,可以在链接阶段被其他文件链接 int d(int e1,int e2)//e1 e2 原型作用域,即 e1 和e2 不能相同 { int f=1;//代码块内 链接属性为无, 存储属性:动态,作用域:整个函数作用域 register int b; //代码块内 链接属性为无, 存储属性:register,作用域:整个函数作用域 static int g=20; //代码块内 链接属性为无, 存储属性:静态,作用域:整个函数作用域 g++;f++; //g 为静态存储,每次调用时不重新初始化;f为动态存储,每次调用后都要初始化 //如果调用两次 第一次 g=20 g++运行完后 g=21;第二次g=21 g++ 运行完后 g=22 //如果调用两次 第一次 f=1 f++运行完后 f=2;第二次f=1 f++ 运行完后 f=2 extern int a; //代码块内 链接属性为 external, 存储属性:动态,作用域:整个函数作用域 extern int c;//代码块内 链接属性为 external, 存储属性:动态,作用域:整个函数作用域,会将外部的c屏蔽,不影响c的类型,函数运行完后c的属性不变 .... { int e1; extern int h; } .... { int x; int e1; } }
来自为知笔记(Wiz)
相关文章推荐
- ②看视频学习NDK之C函数指针
- C函数指针学习
- 【数据结构学习之完全从零实现所有数据结构的代码编写之二】智能指针
- c++学习笔记1(指针和引用)
- 孙鑫VC学习笔记:第十三讲 保存可串行化的类对象 如何获取文档与视类指针
- C指针学习分享之“了解指针”
- c基础学习 - 指针
- C语言指针学习:指向函数的指针
- ios学习第一天(六)函数及函数指针
- 【学习笔记】【C语言】指向结构体的指针
- c++primer学习笔记3 - 数组和指针
- C语言学习趣事_关于指针转换
- 【C++基础学习】引用和指针、重载、函数、内存管理
- iOS开发学习之C语言---C07 指针-2
- C++学习笔记(3)——成员变量、成员函数的指针
- 新手学习指针
- 《C++ Primer》学习 之 函数指针相关用法
- C/C++学习之C提高----函数调用模型、指针做函数参数、字符串的基本操作、一级指针内存模型建立
- 【C++ 学习笔记】 异类指针篇
- C++学习笔记二十二-类成员的指针