<C和指针---读书笔记2>

 

前面我们知道了 C语言中数据类型分类:基本类型(整、浮),指针、聚合类、空类型。

在C语言中如何声明?初始化? 访问? 访问范围?硬件中如何存储?这是几个需要关注的问题。

基本声明

     说明符 + 表达式列表

说明符:  是为了具体的说明数据类型、长度、正负的信息。主要包括了部分关键词: int float char unsigned signed long short …

表达式列表: 就是要声明的名字代号,允许赋予初始值。如 int i=0;

 

除了常见的数据类型声明之外,还有几个特别一些的。

     数组声明: int tx_buf[20],定义了数组tx_buf,包含了20个int元素。

     指针声明: int *a 表明a是一个指针,指向一个int型数据。 a的值等于 被指向目标的物理地址。

常量声明:  C语言允许定义常量,需要使用关键字 const

                     Int const a =10; 定义a为常数10,后续程序中该变量不能修改,若有编译器会报错警示。

                     Int const *p    定义指针p指向常量。即被指向的对象 是只读的。 但p可以变化,指向其他对象。

                    Int * const p   定义指针p是常量,即p的值是固定的,只能指向某一个固定的物理地址。但该物理地址所存储的内容是可变的。

                   Int const  * const p  定义了常量指针p指向 一个只读对象。即p永远指向 这个read-only 的int值。

 

Typedef 和 define 和const       关于这三者具体的应用区别,后面还会再做介绍

Define: 是一个预编译指令,在翻译指令时,碰到 define值,就自动完成替代。用于宏变量的控制,十分利于代码维护。

Typedef : 专门用于 为数据类型定义新名字。 如typedef unsigned char  uint8;     typedef  char * Pchar

                  typedef不是简单的 define替代。先记住这句话

const: const的引入是一个修饰词。很大程度上为了告诉程序员,不要轻易改动这个变量。

 

作用域

当变量声明后,它在一定的区域内才能被访问,具体这个区域有多大,就由作用域决定。

因此我们可以说:  (1) 超出作用域无法访问该变量;(2) 超出作用域可以定义新的变量,即使同名变量。

原文地址:https://www.cnblogs.com/mokang0421/p/7309373.html