数组、指针与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);
}
**三种形参都可以接受实参,当数组名在传递的时候其实就是一个指针。**