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{ ...
随机推荐
- WCF如何通过契约加编码方式调用
WCF采用基于契约的服务调用方法,通过System.ServiceModel.ChannelFactory<TChannel>直接创建服务代理对象. 创建服务代理 public stati ...
- 从报错“无效操作,连接被关闭”探究Transaction的Timeout超时机制
1.报错如下:Invalid Operation the connection is closed,无效操作,连接被关闭.这个错误是并不是每次都报,只有在复杂操作.大事务的情况下才偶然报出来. sta ...
- nginx初识
- Unity优化之减少Drawcall
简单来说,Drawcall就是屏幕渲染一次所需要的开销,为了较少消耗,提高性能,一般有以下几种方法. 一: 批处理 1.动态批处理 如果动态物体共用着相同的材质,那么Unity会自动对这些物体进行批处 ...
- RPI学习--环境搭建_刷卡+wiringPi库安装
1,镜像地址 http://www.raspberrypi.org/downloads/ 2,Windows下刷写工具 Win32 Disk Imager 3,安装wiringPi库 (这里在连网状态 ...
- SplashTop Remote + 4核android平板 试用
局域网默认情况 最大100Mb 的网速下, 延迟在500ms+, 观看视频无影响, 但游戏无法进行! 另一种方案,利用多网卡来提升网络传输性能!
- PHP笔记(一)
1. public 表示全局,类内部外部子类都可以访问:private表示私有的,只有本类内部可以使用:protected表示受保护的,只有本类或子类或父类中可以访问: 2. ==是包括变量值与类型完 ...
- Iterator之java.util.ConcurrentModificationException
在运行以下代码时,会报java.util.ConcurrentModificationException异常, public class Demo { public static void main( ...
- 技术解析:锁屏绕过,三星Galaxy系列手机也能“被”呼出电话
近期,由两位安全研究人员,Roberto Paleari及Aristide Fattori,发布了关于三星Galaxy手机设备安全漏洞的技术细节.据称,Galaxy手机可在锁屏状态下被未授权的第三方人 ...
- eclipse安装spring和hibernate插件经验
看网上的教程有时候不一定凑效,我是自己摸索的(看过尚硅谷的SSH视频),很多时候会安装不成功(或者安装结果与视频讲述不一致),但是安装过后,查看eclispe插件,会发现已经安装了(springIDE ...