c语言指针

sizeof

断了今生、忘了曾经 提交于 2019-12-04 18:45:21
本文转载百度百科。 编辑本段 用法   var a : array[1..10000] of longint;    Begin   Writeln(SizeOf(a));   End.   输出:40000   如果定义Integer,则输出:20000    c语言 中判断数据类型长度符   用法   sizeof(类型说明符, 数组 名或表达式);   或   sizeof 变量名   1. 定义:   sizeof是C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。   MSDN上的解释为:   The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.   其返回值类型为size_t,在头文件 stddef.h 中定义。这是一个依赖于编译系统的值,一般定义为   typedef unsigned int size_t;   世上 编译器 林林总总,但作为一个规范,它们都会保证char、signed char和unsigned  

sizeof、strlen之一

半腔热情 提交于 2019-12-04 18:44:43
解析C/C++语言中的sizeof 一、sizeof的概念   sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法   1、用于数据类型   sizeof使用形式:sizeof(type)   数据类型必须用括号括住。如sizeof(int)。   2、用于变量   sizeof使用形式:sizeof(var_name)或sizeof var_name   变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。   注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。   如sizeof(max)若此时变量max定义为int max(),sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。 三、sizeof的结果    sizeof 操作符的结果类型是size_t

sizeof和strlen的用法

若如初见. 提交于 2019-12-04 18:43:44
解析C/C++语言中的sizeof 一、sizeof的概念   sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法   1、用于数据类型   sizeof使用形式:sizeof(type)   数据类型必须用括号括住。如sizeof(int)。   2、用于变量   sizeof使用形式:sizeof(var_name)或sizeof var_name   变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。   注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。   如sizeof(max)若此时变量max定义为int max(),sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。 三、sizeof的结果    sizeof操作符的结果类型是size_t

sizeof 和strlen的用法

风流意气都作罢 提交于 2019-12-04 18:42:05
sizeof 与 strlen 的用法 http://blog.csdn.net/rsp19801226/article/details/3095157 解析C/C++语言中的sizeof 一、sizeof的概念 sizeof 是 C 语言的一种单目操作符,如 C 语言的其他操作符 ++ 、 -- 等。它并不是函数。 sizeof 操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1 、用于数据类型 sizeof 使用形式: sizeof ( type )   数据类型必须用括号括住。如 sizeof ( int )。 2 、用于变量 sizeof 使用形式: sizeof ( var_name )或 sizeof var_name   变量名可以不用括号括住。如 sizeof (var_name) , sizeof var_name 等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。   注意: sizeof 操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、 void 类型等。   如 sizeof(max) 若此时变量 max 定义为 intmax(),sizeof(char_v

sizeof与strlen的用法

﹥>﹥吖頭↗ 提交于 2019-12-04 18:41:50
解析C/C++语言中的sizeof 一、sizeof的概念   sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法   1、用于数据类型   sizeof使用形式:sizeof(type)   数据类型必须用括号括住。如sizeof(int)。   2、用于变量   sizeof使用形式:sizeof(var_name)或sizeof var_name   变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。   注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。   如sizeof(max)若此时变量max定义为int max(),sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。 三、sizeof的结果    sizeof 操作符的结果类型是 size_t ,它在头文件中

解析sizeof和strlen的区别

我与影子孤独终老i 提交于 2019-12-04 18:41:39
解析C/C++语言中的sizeof 一、sizeof的概念   sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法   1、用于数据类型   sizeof使用形式:sizeof(type)   数据类型必须用括号括住。如sizeof(int)。   2、用于变量   sizeof使用形式:sizeof(var_name)或sizeof var_name   变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。   注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。   如sizeof(max)若此时变量max定义为int max(),sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。 三、sizeof的结果    sizeof操作符的结果类型是size_t

关于指针类型和指针类型转换的理解

廉价感情. 提交于 2019-12-04 15:48:07
前几天在判断 “ 值相同的两个指针所指向的变量的值可以不同 ” 这句话时,发现自己对指针类型一些概念仅仅是记住了结论。于是查阅了一些资料,记录一下一些与指针类型和指针类型转化相关的知识。 一些用到的 开始之前,先来复习一些会用到的知识。 1.地址,字节,位   位(bit)是电子计算机中最小的数据单位。每一位的状态只能是0或1。   字节(Byte)是用于计量存储容量的一种单位,每一个字节由8位组成(1Byte = 8bit)。   地址可以理解为在一片内存中,每个字节(Byte)的编号。   他们在内存中的关系可以比作,内存是一栋大楼,字节(Byte)是大楼中的每一层,地址是楼层编号,位(bit)是每一层中的房间,每一层有8个房间。     2.变量的内存   编译器根据变量的类型,在内存中申请一块空间。例如32位与64位中 int 类型申请到4字节的空间,可理解为编译器申请了4层楼,作为”办公区域“。 3.指针变量   指针是指程序数据在内存中的地址。在c语言当中,允许用一个变量来存放指针,这种变量称为指针变量。 指针变量类型的作用 1   int a; 2   int *p; 3   p = &a; 4   printf("%p %d\n",p,*p);   以上程序中,”&“操作符取出了变量 a 在内存空间中的 首地址 ,而后通过 “ * ”

类与对象(上) C++

感情迁移 提交于 2019-12-04 14:48:36
深夜发博,最深的感触就是,曾经欠的债,是要用头发来还的…… 关于C++大致分为以下几个小部分: 1.类与对象的初步认知: C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2.类的引入: C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。结构体的定义,在C++中更喜欢用class来代替 ,然后将这种把函数与变量等绑定在一个结构体中,这个结构体称为类。 struct Student1 { void SetStudentInfo(const char* name, const char* gender, int age) { strcpy(_name, name); strcpy(_gender, gender); _age = age; } void PrintStudent() { cout << _name << " " << _gender << " " << _age << endl; } char _name[20]; char _gender[10]; int _age; }; class Student2 { public: void SetStudentInfo(const char* name, const

c语言中qsort函数的使用、编程中的一些错误

寵の児 提交于 2019-12-04 11:14:07
qsort()函数: 功能:相当于c++sort,具有快排的功能,复杂度的话nlog(n) 注:C中的qsort()采用的是快排算法,C++的sort()则是改进的快排算法。两者的时间复杂度都是nlogn,但是实际应用中,sort()一般要快些,建议使用sort()。 头文件:stdlib.h 用法: void qsort(void* base,size_t_num,size_t_width,int(__cdecl*compare)(const void*,const void*));   参数:1、待排序数组,排序之后的结果仍放在这个数组中      2、数组中待排序元素数量      3、各元素的占用空间大小(单位为字节)    4、指向函数的指针,用于确定排序的顺序(需要用户自定义一个比较函数) 1、对int类型进行排序: 代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int num[100]; 4 int cmp_int(const void* aa,const void* bb) 5 { 6 int* a=(int*)aa; 7 int* b=(int*)bb; 8 return *a-*b; 9 } 10 int main() 11 { 12 int i; 13 num[1]=3; 14 num[2]=2; 15 num

C语言的数组和指针的区别

五迷三道 提交于 2019-12-04 10:35:17
1.看到这个题目大家应该知道了,数组和指针它俩不是一回事儿,它俩是有区别的!    我原来看数组的时候,一直都是用数组名表示数组内容的首地址,但是当我认真在网上看了数组和指针之后,发现数组和指针不等价! 举个例子,相信大家见过这种写法: int arr[] = { 1,2,3,4,5}; int *b = arr;   我们一般的认识是 arr是一个指针,指向数组的首地址,然后它把这个地址的值赋给了指针变量b。   但是这种理解是有一点的不准确,严格来说应该是 arr被转换为了一个指针。 再举个例子: #include <stdio.h> #include <string.h> int main(){ int a[6] = {1,2,3,4,5,6}; int *b = a; int len_a = sizeof(a) / sizeof(int); int len_b = sizeof(b) / sizeof(int); printf("len_a = %d\n",len_a); printf("len_b = %d",len_b); return 0; }   如果,咱们说如果哦,如果数组和指针等价,那么这两个结果应该是一样的,但是我们来看一下运行结果:   这特么是什么玩意,这个 2 是哪来的。    我们来看一下C语言中文网上的描述:   数组是一系列数据的集合