《C和指针》读书笔记(二)

C语言中,仅有4种基本数据类型-整形,浮点型,指针和聚合类型(数组和结构)
short int 至少16位,long int 至少32位
头文件 limits.h说明了各种不同的整型类型的特点
常量不能修改但是可以通过
char *message="Hello World" < => char *message; message="Hello World";
int const a;<=> const int a;
//看上去是将初始值赋给*message,其实是赋值给message本身
           char *message = "Hello World" ;
           typedef char *ptr_to_char;
           ptr_to_char a; //a是一个指向字符的指针
           //typedef 与#define相比,typedef可以处理指针类型的声明

           const int a1 = 0;
           int const a2 = 1;

           int *pi;//pi->指向整形的指针
           int const *pci;//指向整形常量的指针,可修改指针的值,不可以修改它所指向的值
           int *const cpi=0;//指向整形的常量指针,此时指针是常量,它的值无法修改,可修改它指向的整形值

           //左定值(指针指向的值不可修改),右定向(指针不可修改)
           int a = 248, b = 4;
           int const c = 21;
           const int *d = &a;
           int * const e = &b;
           int const * const f = &a;
           //c = 32;
           //*d = 43;
           //e = &a;
           //f = 0x321f;
           //d = &b;


          四种不同的作用域:文件作用域,函数作用域,代码块作用域,原型作用域
          代码块作用域: 一对花括号之间{},内层代码块作用域会隐藏同名的外层的标识符
          文件作用域: 任何在代码块作用域之外的都成为文件作用域
          原型作用域:只适用于函数原型声明的参数名
          函数作用域:只适用于语句标签,语句标签用于goto语句(一个函数中,所有语句标签必须一致),尽量不用


          连接属性:external(外部) internal (内部) none(无)
          
          函数的形参不能声明为static,因为实参要在堆栈中传递给函数,用于支持递归

          具有external连接属性的实体在所有文件的所有实体中,都可以访问,只要变量并非声明于代码块或
          函数定义内部,他在缺省的情况下连接属性都是external,
具有external连接属性的实体总有静态存储类型








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值