c/c++ 中的 sizeof 运算符和数组类型的变量与形参
2011-03-13 11:29
441 查看
#include <cstdio> using namespace std; void seq_to_tree(char seq[]) { puts("seq_to_tree:"); char tmp[20]; printf("sizeof(seq): %d\n", sizeof(seq)); printf("siezof(tmp): %d\n", sizeof(tmp)); } int main() { char seq[10]; puts("main():"); printf("sizeof(seq): %d\n", sizeof(seq)); seq_to_tree(seq); return 0; }
运行结果:
main(): sizeof(seq): 10 seq_to_tree: sizeof(seq): 4 siezof(tmp): 20
这一段代码测试了在c/c++中数组类型的形参的sizeof与数组类型的变量sizeof不一样,说明了两个问题:
1. c/c++中数组类型的形参其实传进来就一个指针,而指针通常可以认为是 unsigned int *,那么大小为 4 不足为怪。
2. c/c++中的数组类型或者是struct类型的非基本类型是栈变量。
相关文章推荐
- java数据类型 变量,运算符,字符串,输入输出,数组,大数值
- C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误
- C/C++基本数据类型所占字节数以及sizeof运算符的使用
- C数据类型,变量,运算符,数组与字符串
- 将C++的std::string类型变量赋值给char类型数组
- 从零开始学C++之从C到C++(二):引用、数组引用与指针引用、内联函数inline、四种类型转换运算符
- C++ 知识点(一):基础与入门,数据类型,类型限定,运算符,数组
- C/C++学习之C提高----C程序数组排序、数据类型(大小,别名,封装)、变量、程序的内存四区模型(栈,堆,全局,代码区)
- 4变量类型 5运算符 6控制结构(循环数组和循环数组对象)
- C/C++ 中的 sizeof 运算符和 size_t 类型
- C++中变量和基本类型,标准库类型以及数组和指针的使用规则
- 从零开始学C++之从C到C++(二):引用、数组引用与指针引用、内联函数inline、四种类型转换运算符
- c/c++ 全局变量_sizeof数组
- 从零开始学C++之从C到C++(二):引用、数组引用与指针引用、内联函数inline、四种类型转换运算符
- 第01章 CORE C++_C++ 基本结构_注释_输出语句_输入语句_初始化_条件控制_ASCII码值_转义字符_常量_变量_类型长度_运算符
- C++基础之变量、数据类型及运算符
- double*等指针类型所占字节数 float* long* int* short* 要求用sizeof 运算符计算C++中char*
- C/C++学习之C提高----C数组的定义、类型、定义数组指针变量、多维数组的本质、多维数组做函数参数、将两个数组中的字符串copy到第三个数组
- JavaScript之变量、基本类型、数组、运算符、流程控制语句、函数
- C++ 转换类型运算符 调用构造函数将变量转化成为一个对象的成员变量