如何判断c语言的变量类型
变量三要素:
一个变量有三个基本的要素,变量的名称,变量的类型,变量的值。
所以int a = 10; 变量名为a,变量的存储类型为int型,变量的值为10。
变量还有一些属性如作用范围和存储类型。
变量作用范围和存储类型
作用范围有局部变量和全局变量。局部只在特定范围内起作用。全部变量在整个程序运行期间起作用。
存储类型有auto(自动),static(静态),register(寄存器变量)
自动变量auto默认省略,int a = 10; 和 auto int a = 10;是一样的。自动变量动态的分配内存空间,数据存储在动态存储区内。
静态变量static,在函数初始化的时候就分配空间,而且数据存储在静态存储区内,在程序运行期间,变量的存储空间不会被释放掉。
指针变量
指针变量除了上面的三要素以外,还有指针指向的数据类型。
int *p = &a;
变量名为p,变量的类型为指针类型,变量的值为a的地址,该指针变量指向的数据类型为int类型。
如何判断变量类型
int (*p)(int,int); 指向函数的指针。
是一个指针,该指针指向一个函数入口。
判断方法:p先和*结合,为一个指针。后和(int,int)结合,指针指向返回值为int 的函数。
float *fun(int a); 返回指针值的函数。为一个函数,形参为int型,返回值为一个float类型指针。
判断方法,fun和(int a)结合,为函数。函数返回值为float类型指针。
int *p[4]; 指针数组。为一个数组,数组里面元素的存储类型为指针类型。
判断方法:p和[4]结合,为一个数组,数组存储的类型为int类型指针。
float (*pointer)[4] ;指向一维数组的指针变量。为一个指针,指针指向长度为4的数组。
判断方法:pointer和*结合,为一个指针。该指针指向一个长度为4的,存有float类型的数组。
所以判断一个变量类型的时候,先看变量名的结合性,首先和什么结合就是什么类型变量,先和指针结合就是指针变量,和数组结合就是数组。然后在看该变量的其它属性:指针有其指向的类型、数组有其存储类型,函数有返回类型和形参等等。
如何判断c语言的变量类型的更多相关文章
- 2.go语言入门----变量类型、声明变量、数组、切片
基本变量类型 介绍几种基本的变量类型:字符串.int.float.bool package main import ( "fmt" ) // 列举几种非常基本的数据类型 func ...
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
- 【学习笔记】【C语言】变量类型
根据变量的作用域,可以分为: 1.局部变量: 1> 定义:在函数(代码块)内部定义的变量(包括函数的形参) 2> 作用域:从定义变量的那一行开始,一直到代码块结束 3> 生命周期:从 ...
- C++语言中的类型(一)
--分门别类是简化事物最有效的方式. 类型是C++语言的基础,对象类型决定了能对该对象进行的操作. 一.基本内置数据类型 C++预先定义的基本内置数据类型是构造世界万物的原子,数据类型告诉我们数据的意 ...
- js技术之运用"typeof()"运算符校验变量类型
一.简介 typeof();个人的理解就是可以判断出对应的变量类型,而且是用统一的类型 如:数字,小数等..... 都用Number来表示 而:所有对象都用object表示 二.探索到 typeof的 ...
- C语言变量 类型判断
变量三要素: 一个变量有三个基本的要素,变量的名称,变量的类型,变量的值.所以int a = 10; 变量名为a,变量的存储类型为int型,变量的值为10. 变量还有一些属性如作用范围和存储类型. 变 ...
- javascript 核心语言笔记- 3 - 类型、值和变量
JavaScript 中的数据类型分为两类:原始类型(primitive type)和对象类型(object type).原始类型包括数字.字符串和布尔值 JavaScript 中有两个特殊的原始值: ...
- Javascript 判断变量类型的陷阱 与 正确的处理方式
Javascript 由于各种各样的原因,在判断一个变量的数据类型方面一直存在着一些问题,其中最典型的问题恐怕就是 typeof null 会返回 object 了吧.因此在这里简单的总结一下判断数据 ...
- JS 中对变量类型判断的几种方式
文章整理搬运,出处不详,如有侵犯,请联系~ 数据类型判断和数据类型转换代码工具 在 JS 中,有 5 种基本数据类型和 1 种复杂数据类型,基本数据类型有:Undefined, Null, Boo ...
随机推荐
- Java并发编程(二)
1.Lock接口 在Lock接口出现之前,Java程序是靠synchronized关键字实 ...
- Redis 启动警告解决【转】
[root@centos224]# service redisd start :M Nov :: (it was originally set to ). _._ _.-``__ ''-._ _.-` ...
- 混合式App开发 Apicloud 官方iPhone X 适配
iPhone X 适配 由于iPhone X的特殊造型,为了方便开发者对iPhone X进行适配,苹果在iOS 11中引入了Safe Area的概念,引擎也在api对象下添加了safeArea属性和s ...
- C++——stoi函数
版权声明:本文系原创,转载请声明出处. 1. 函数原型 , ); , ); 2. 参数说明 str String object with the representation of an integr ...
- [ python ] 进程的操作
目录 (见右侧目录栏导航)- 1. 前言- 2. multiprocess模块- 2.1 multiprocess.Process模块 - 2.2 使用Process模块创建进程 - 2. ...
- 修改系统时间为UTC时间
1 拷贝时区文件 cp /usr/share/zoneinfo/Etc/GMT /etc/localtime 2 修改/etc/profile 在最后添加 TZ="Etc/GMT" ...
- HDU 17111 Number Sequence(KMP裸题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 题目大意:给你两个数字数组a和b,若b是a的子序列则输出b在a中第一次出现的位置,否则输出-1. ...
- POJ 2431 Expedition (贪心 + 优先队列)
题目链接:http://poj.org/problem?id=2431 题意:一辆卡车要行驶L单位距离,卡车上有P单位的汽油.一共有N个加油站,分别给出加油站距终点距离,及加油站可以加的油量.问卡车能 ...
- C语言获取输入,按单词输出
#include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]) { int num; printf ...
- python中调用cmd
1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息.使用前需要import os. os.system(&q ...