数组:
int a[10]:数组里所有元素都是整形,a时数组名,10为数组的长度,有10个元素。
【错误示范】:int a[k]:c语言不允许对数组大小作动态意义,即数组的大小不依赖于程序运行过程中变量的值。
【常见错误】:float a[0] //数组大小为0没有意义。
int b(2)(3) //不能使用圆括号
int k ,a[k] //不能使用变量名
字节序:不确定高低地址,数组的字节序是确定的。
大端字节序:高字节存放在低地址,低字节cun'存放在高地址。
小端字节序:高。。。。高 。。,低。。。。。。。低。。。
思考:判断机器的字节序???
大小端转换???
如何使用一个数组?
#include<stdio.h>
int b[5];
int main()
{
int array[5];int i;
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
printf("%d",a[i]);
}
printf("\n");
for(i=0;i<5;i++)
{
printf("%d",b[i]);
}
printf("\n");
return 0;
数组中未初始化的全局变量0;
主函数中,未初始化的的局部变量是垃圾值(随机值)
//int array[5]={0,1,2,3,4};
// int array[5]={1,2};//对部分元素初始化,其他未初始化元素为0
// int array[]={1,2,3,4,5};
printf("%p\n",&a[0][0]);//首元素的地址,单位4字节
printf("%p\n",a[0]);//首行元素的地址,单位4字节
printf("%p\n",&a[0]);//首行地址,单位12字节
printf("%p\n",a);//首行的地址,单位12字节
******************************************************
printf("%p\n",&a[0][0]+1);//首行第二个元素的地址
printf("%p\n",a[0]+1);//首行第二个元素的地址,单位4字节
printf("%p\n",&a[0]+1);//第二行的地址,单位12字节
printf("%p\n",a+1);//第二行的地址,单位12字节
printf("%p\n",&a+1);............................单位48字节
*(a+x)=[x]
字符串处理函数
1.strcat 函数(连接函数)
#include<stdio.h>
#include<string.h>
int main()
{
char str[20]="hello";
char ptr[20]="world";
strcat(str,ptr);//把字符串ptr连接到str的后面,把str 变成helloworld
printf("%s\n",str);
return 0;
}
2.拷贝函数(strcpy):
char str[20]="hello";
char ptr[20]="world";
strcpy(str,ptr);//字符串拷贝函数,把ptr指向的字符串拷贝到str里。
printf("%s\n",str);
strncpy(str,ptr,3);//只拷贝前三个字符。
字符串赋值的三种方法:
1 char str[20]="hello";
2 char str[20];
str[0]='h';str[1]='e'...........
3 strcpy(str,"hello");
【错误】:char str [20];
str="helloworld";
字符串比较:(根据字母排序比,第一个字母相同的就比较第二个)
char str[20]="hello";
char ptr[20]="world";
if(strcmp(str,ptr)==0)
{
printf("字符串相等\n");
}
else if (strcmp(str,ptr)>0)
{
printf("%s 大于 %s\n",str,ptr);
}
else if(strcmp(str,ptr)<0)
{
printf("%s 大于 %s\n",str,ptr);
}
if(strncmp(str,ptr,1)<0)
{
printf("%s 大于 %s\n",str,ptr);
自定义函数:
函数类型 函数名(形式参数类型说明表)
{ 声明部分
执行部分
}
调用函数调用过程:
1.通过函数名找到函数的入口地址(函数名就是地址)
2.给形参分配空间
3.传参,传值(把实参传给形参)(值传送,地址传送)
4.执行函数体
5结果返回到调用它的地方
6。释放空间(栈空间)
static三个作用:1.修饰全局变量,改变变量的作用域,只能在当前文件夹中被调用,其他文件不能调用
2.修饰函数;改变函数作用域,只能在当前文件中被调用。
3.