C语言--指针数组大小

#include <stdio.h>
#include <string.h>
int main(void)
{

char *str[3]={
"Hello,thisisasample!",
"Hi,goodmorning.",
"Helloworld"
};

char s[80];

printf("size  %d\n",sizeof(char [3])); //
printf("size  %d\n",sizeof(str)); // 3X4=12

printf("size  %d\n",sizeof(*str)); //   sizeof((char *)str)

C语言--指针数组大小

时间: 2024-10-18 06:37:41

C语言--指针数组大小的相关文章

转:C语言指针数组和数组指针

转自网址http://c.biancheng.net/cpp/html/476.html 一.指针数组和数组指针的内存布局 初学者总是分不出指针数组与数组指针的区别.其实很好理解: 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是“储存指针的数组”的简称. 数组指针:首先它是一个指针,它指向一个数组.在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.它是“指向数组的指针”的简称. 下面到底哪个是数组指针,哪个是指针数组呢: A) int

C语言指针数组(每个元素都是指针)

转载:http://c.biancheng.net/cpp/html/3246.html 注意:数组指针的区别 如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组.指针数组的定义形式一般为: dataType *arrayName[length]; [ ]的优先级高于*,该定义形式应该理解为: dataType *(arrayName[length]); 括号里面说明arrayName是一个数组,包含了length个元素,括号外面说明每个元素的类型为dataType *. 除了每个

c语言 指针数组

指针数组指针数组是数组,指针数组每个元素是一个指针指针数组的定义:type* parray[n]; type* 是数组中每个元素的类型parray 为数组名n为大小 例子:float* a[3] //a是一个数组,每个元素的类型是float* code: #include <stdio.h> #include <string.h> #define DIM(a) (sizeof(a)/sizeof(*a)) int lookup_keyword(const char* key, co

C语言局部数组大小与内存的栈的关系

今天有个同学问了一个问题,我居然答不上来,为什么不能开局部整型二维数组[1000][1000]?但是在数组前面加上一个static就可以了? windows下栈的大小(不是数据结构里面的栈)是2MB,换算成字节大概是2*10^6个字节 整型变量占用4个字节,那么一个1000*1000的int数组就占用4*10^6个字节,栈的空间不够大,所以这样定义数组是错误的 那么为什么把它定义为静态变量就可以了呢?因为全局变量保存在内存的全局存储区中,占用静态的存储单元,所以加上static就相当于全局变量了

C语言指针数组和数组指针

声明一个数组指针: int (*p1)[4];//指向数组的指针 这是一个指向长度为4的整数数组的指针 声明一个指针数组: int *p2[4];//指针数组 这是一个包含4个指向整数的指针的数组 int a[2][4] = {1,2,3,4,5,6,7,8}; p1 = a; p1++;//相当于 p4+4 , 向后移动了4个单元 开始p1指向数组的第一行,现在指向第二行 结果如下: printf("%d %d %d %d \n", (*p1)[0], (*p1)[1], (*p1)

c语言指针数组和结构体的指针

指向数组的指针,先初始化一个数组,使用传统方式遍历 1 void main() 2 { 3 int a[5] = { 1,2,3,4,5 }; 4 for (int i = 0; i < 5; i++) 5 { 6 printf("%d,%x\n", a[i], &a[i]); 7 printf("%d,%x\n",*(a+i),a+i); //等价 a[i] , &a[i] 8 } 9 } a就是数组a的首地址,即元素1的地址, a + 1

c/c++(疑3) C语言指针与数组之间关系

c/c++ (疑1)数组和指针 c/c++(疑2) const extern 有了前面 两篇 基础,下面我们可以更深入的来介绍c/c++(疑3) C语言指针与数组之间关系 1 概述(C语言指针与数组之间关系) 指针就是指针,指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址.指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到. 数组就是数组,其大小与元素的类型和个数有关.定义数组时必须指定其元素的类型和个数.数组可以存任何类型的数据,但不能存函数. 2    

C语言指针【转】

一.C语言指针的概念 在计算机中,所有的数据都是存放在存储器中的.一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍.为了正确地访问这些内存单元,必须为每个内存单元编上号.根据一个内存单元的编号即可准确地找到该内存单元.内存单元的编号也叫做地址.既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针. 内存单元的指针和内存单元的内容是两个不同的概念. 可以用一个通俗的例子来说明它

《C语言学习笔记》指针数组及其应用

C语言中,最灵活但又容易出错的莫过于指针了.而指针数组,是在C中很常见的一个应用.指针数组的意思是说,这个数组存储的所有对象都为指针.除了存储对象为指针,即一个地址外,其它操作和普通数组完全一样. 1 #include <stdion.h> 2 3 int main() { 4 int i; 5 char *name[] = {"BASIC", "FORTRAN", "C++", "Pascal", "C