C语言中怎么准确地给变量确定数据类型

如题所述

c 中变量使用,必须先声明,声明其实就是声明类型和名字;

不过,我想你应该问的是,随便给我一个变量p,如 int* (*(*p)[10])(int,int) ,然后怎么看类型吧、?

首先,我们一步一步来看
int a; // a 是 int 型,你懂的;
int a[10]; // a 是 int[10],也就是 10 个 int 的数组类型;
int *pi; // pi 是 int*,也就是 pi 可以放一个int变量的地址;又称int指针类型
int *pj[10]; // 根据[] 的优先级高于*,那么改写一下,int* ( pj[10] );
// pj 是int* [10]; 也就是10 个 int* 的数组类型
int (*pk)[10]; // pk 是指针类型,什么指针?int [10] 类型的指针,就是数组指针
int *fun(int, int); // fun 是个函数,不是个变量,but 具有变量的某些特征;返回int*
int (*pfun)(int ,int); // pfun 类型int (*)(int,int);函数指针,可以 pfun = fun;

下面就说,我给出的那个 int* (*(*p)[10]) (int,int)

从 名字p,往外看,或是两侧看,发现了*,那么p就是个指针类型;什么指针??
继续看,看到了 [10] ,所以是 数组指针; 什么数组??
继续看,(*),哦,是,指针数组,什么指针??
int* (int,int) ,哦,返回int*,用两个int,作为参数的函数指针;

于是,那么 p 的类型:
指针,
数组、指针,
指针、数组、指针
函数、指针、数组、指针
两个int参数int*的返回值的函数、指针、数组、指针;

那个,我感觉差不多了,你自己琢磨一下吧、多看多想,自然就会明白的~~~建议看看K&R的那本书,上面有类型解析;~~
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-06
通过变量类型声明。
例如:
int i; 整型
float a; 单精度浮点型
double b; 双精度浮点型
char c; 字符型
char s[10]; 字符串型(字符型数组)
第2个回答  2011-04-07
通过变量类型声明。
int i; 整型
float a; 单精度浮点型
double b; 双精度浮点型
char c; 字符型
char s[10]; 字符串型(字符型数组)
long b;长整型
第3个回答  2011-04-07
根据数据的位数给数据定义类型 int32 int 16 等 int表示类型 32或16表示数据位数
第4个回答  2011-04-06
int i;

C语言中怎么准确地给变量确定数据类型
int *pi; \/\/ pi 是 int*,也就是 pi 可以放一个int变量的地址;又称int指针类型 int *pj[10]; \/\/ 根据[] 的优先级高于*,那么改写一下,int* ( pj[10] );\/\/ pj 是int* [10]; 也就是10 个 int* 的数组类型 int (*pk)[10]; \/\/ pk 是指针类型,什么指针?int [...

c语言中怎样准确确定变量的数据类型
char类型的数据就是字符类型的。int类型是有符号整型,表示范围为-2^15 ~2^15-1(占2个字节时),-2^31 ~2^31-1(占4个字节时)unsigned int类型是无符号整型,表示范围为0 ~2^16-1(占2个字节时),0 ~2^32-1(占4个字节时)short类型是短整型,表示范围为-2^15 ~2^15-1 unsigne...

c\/c++如何判断变量的数据类型?
c\/c++判断变量的数据类型可以采用下面的代码:include <typeinfo> using namespace std;...cout << typeid(d).name() << endl;

C语言,如何检测变量的数据类型?
1 、首先用sizeof 来测试下这个变量是占据的字节数字 sizeof int 4 2、这个适合你需要查看这变量占据内存单元的实际地址,然后根据地址观察其存放规律 这一就可以知道他是什么类型了!

c语言需要定义数据类型,那怎么判断定义什么数据类型?
根据自己需要保存的数据是什么性质来选择合适的变量类型。如果需要保存的是字符,那么就选用char类型,如果是一串字符,比方说用来保存姓名或者密码等等,那么就可以选用char数组。如果保存的数据没有小数,那么就可以选用int类型,在32位的编译系统下,int类型可以保存,绝对值不大于21亿的整数。如果是带有...

在C语言中怎样判断一个数的数据类型
(int)(3*i+d\/2)是把(3*i+d\/2)强转成int ,+3.0后自动结果会取精度高的那种类型,于是变成了double

C语言,如何检测变量的数据类型?
呵呵 我说了可不可以回答得通俗点,可以举个例子嘛 我之前就查过type了,没看懂。回答:c语言没有检查变量类型的函数,在C语言中定义的变量,只是根据变量类型来分配默认的存储空间大小,而不记录空间中存储的具体的值的类型。比如你定义的字符类型可以当整形来用,可以直接在上面加减一个数值。

C语言中的类型转换
首先,了解一种简单方法用于判断数据类型。定义一个整型指针变量p,尝试赋值给不同类型的变量。若编译器报错,表明无法相互赋值,从而判断出变量类型。接着,探索同类型数据之间的运算规则。整型运算通常将结果转换为与原类型相同或更高级别的类型。例如,char与char运算结果为int,而char与long运算结果为long...

C语言函数变量定义
C语言中变量遵循“先定义后使用”的原则:1、定义变量的格式:数据类型 变量名;首先要强调的一点是:变量的定义是一条语句,每条语句都是以分号结尾的。故定义完变量,后面不要漏掉“;”分号。在变量定义中,“数据类型”表示想要存储什么类型的数据就定义什么类型的变量。如想要存储整数就定义成 int ...

C 语言怎么判断传入数据的类型?
1、 大多数情况下,参数类型都是确定的,在函数定义时就可以确定类型。此种情况下,不需要函数本身判断,编译器会做判断或转换。如 void func(int n);声明这样的函数,参数为int型,当调用时如果实参不是int型,C编译器会尝试转换为int型,如果转换失败,则编译报错。2、 对于参数个数和类型不确定...

相似回答