C函数及指针学习1
1 大段程序注释的方法
#if 0
#endif
wchar_t wch[] = L"abc"; // wch就是一个宽字节的数组,L"abc",就是宽字节常量,由于 "abc",不是宽字节的,加L在前面就令它成为宽字节常量,你可以看看L其实是一个宏来的
char *ptr//ptr为指向字符的指针
typedf char *ptr;
ptr a;//a为指向字符的指针
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 指针指向的值为整型
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;
}
}
C函数及指针学习1的更多相关文章
- c 函数及指针学习 10
标准库函数 1算数运算stdlib.h 2随机数stdlib.h 3字符串转化stdlib.h 4数学函数 math.h 5日期和时间 time.h 6信号 signal.h 7打印可变参数列表std ...
- c 函数及指针学习 9
指针的高级应用 处理命令行参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> int main(int ar ...
- c 函数及指针学习 7
1.结构的存储分配 1 2 printf("%d \n",sizeof(char)); printf("%d \n",sizeof(int)); int 类型为 ...
- c 函数及指针学习 5
聚合数据类型 能够同时存储超过一个的单独数据. c语言提供了数组和结构体. 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> # ...
- c 函数及指针学习 4
1数组和指针声明的差别 声明数组:为数组分配内存,为数组名分配内存(指针常量 4个字节) 指针:为指针分配内存(指针变量 4个字节) 1 2 3 4 5 6 7 8 9 10 #include < ...
- c 函数及指针学习 3
strlen(x) 返回 size_t 类型,size_t是 unsigned int 类型,所以 strlen(x)-strlen(y) 返回 unsigned int 始终 >=0 1 2 ...
- C函数及指针学习2
1.break 永久终止循环,continue 结束当前循环 2.switch 每个case标签要有唯一值,(且为常量或常量表达式) 不加break 时执行流会贯穿整个case 标签 3 赋值操作符 ...
- c 函数及指针学习 8
联合体 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> union sa { double a; int b; ...
- c 函数及指针学习 6
不完整声明 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 /* 方法一 */ struct tag_a{ ...
随机推荐
- C#Winform从页面获取数据,传入数据库
环境: 1.SQLite数据库新建数据表,设置相应的字段.(其他数据库形式都相似,using相应数据库的包即可) 2.页面有两个textBox:textBox1.textBox2, 3.一个保存按钮: ...
- validator
http://rickharrison.github.io/validate.js/validate.js rules: 'required|callback_check_password' vali ...
- windbg调试C#代码(一)
用windbg调试C#代码是比较麻烦的,因为windbg是针对OS层级的,而C#被CLR隔了一层,很多原生的命令如查看局部变量dv.查看变量类型dt等在CLR的环境中都不能用了.必须使用针对CLR的扩 ...
- python 字典排序 关于sort()、reversed()、sorted()
一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...
- NOIP 2013 提高组 day1 T2 火柴排队 归并 逆序对
描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:∑i=1n(ai−bi)2∑i=1n(ai−bi) ...
- bitset常用函数用法记录 (转载)
有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值.位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法.标准库提供了bitset类使得处理位集合更容易一些.要使 ...
- plist 和 Xib
plist文件 mainbudin加载时候有后缀 xib文件 mainbudin加载时候无需后缀
- mysql中Access denied for user 'root'@'localhost' (using password:YES)(zhuan)
错误代码 1045Access denied for user 'root'@'localhost' (using password:YES) 如果你的mysql也出现以上这种提示, 建议你逐个字看完 ...
- [转] Linux内核代码风格 CodingStyle [CH]
from:http://blog.csdn.net/jiang_dlut/article/details/8163731 中文版维护者: 张乐 Zhang Le <r0bertz@gentoo. ...
- MongoDB应用篇(转)
一.高级查询 1. 查询操作符 1.1 比较操作符$gt,$lt,$gte,$lte 实例: select * from things where field<value -- 等价于db.th ...