数组、指针与sizeof( ) 运算符

这篇文章主要介绍sizeof( )运算符的用法
1. sizeof() 和 strlen()
(1) sizeof()是一个运算符,如同加减乘除,返回数据类型或者变量的内存大小。
(2) strlen()是一个C库函数,返回字符串的长度。
2.char str[] = “hello”

sizeof(str)         //str在这既不做左值也不做右值,代表数组的所有大小,字符串以反斜杠零结尾。也占一个字节。
sizeof(str[0])      
//  1   第一个字符的大小

strlen(str)         
//  5   返回字符串的长度,不包括结尾的反斜杠零

3.把数组名赋值给一个指针

char *p = str;

sizeof(p)       
//结果是4,p是指针,在32位平台上,所有的指针都只4个字节的大小。

sizeof(*p)
//结果是1,*p代表第一个字符的大小

strlen(p)
// 结果是5,相当于sizeof(str),返回字符串的长度,

4.数组名做实参传递

#include<stdio.h>
//void func (int *p);       第一种形参
//void func (int a[]);      第二种形参
//void func (int a[5]);     第三种形参

//
main()
{
    int a[5] = {2};
    func(a);
}


//三种形参分别接收都是可以的
void func(int *p)
{
    printf("%d",*p);
}

**三种形参都可以接受实参,当数组名在传递的时候其实就是一个指针。**
posted @ 2016-06-21 21:43  薛定谔的小灯泡  阅读(158)  评论(0编辑  收藏  举报