- 常量可以在main函数之前先定义如#define LENGTH 10 或者main函数内部const int LENGTH = 10;
- auto 存储类是所有局部变量默认的存储类。register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量;static 存储类指示编译器在程序的生命周期内保持局部变量的存在;extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的.
- 函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
- 函数参数调用分为传值调用和引用调用.一般来讲没有特别操作就是传值调用,即传过去的参数在函数里修改了并不会真的改到参数值,引用调用:
void swap(int *x, int *y);
int main ()
{
int a = 100;
int b = 200;
swap(&a, &b);
}
/* 函数定义 */
void swap(int *x, int *y)
{
int temp;
temp = *x; /* 保存地址 x 的值 */
*x = *y; /* 把 y 赋值给 x */
*y = temp; /* 把 temp 赋值给 y */
return;
}
这个就是可以改变到ab值的,因为改到了地址
- 局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。
- 数组:
type arrayName [ arraySize ]
如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。
所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引
- 多维数组:
int a[3][4] = { {0, 1, 2, 3} , /* 初始化索引号为 0 的行 */ {4, 5, 6, 7} , /* 初始化索引号为 1 的行 */ {8, 9, 10, 11} /* 初始化索引号为 2 的行 */ };
或者
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
访问时
int val = a[2][3];
- 传递数组给函数:
#include <stdio.h>
/* 函数声明 */
double getAverage(int arr[], int size);
int main ()
{
/* 带有 5 个元素的整型数组 */
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
/* 传递一个指向数组的指针作为参数 */
avg = getAverage( balance, 5 ) ;
/* 输出返回值 */
printf( "平均值是: %f ", avg );
return 0;
}
double getAverage(int arr[], int size)
{
int i;
double avg;
double sum=0;
for (i = 0; i < size; ++i)
{
sum += arr[i];
}
avg = sum / size;
return avg;
}
- 从函数返回数组: