学习笔记2.0
数组是一个连续的内存空间,用来储存一组数据。
1.数组的下标是从0开始的
2.数组元素的访问:
int array [5]={1,2,3,4,5};
for (int i=0;i<5;i++)
{
printf("%d",array[i]);
}
输出结果:
1 2 3 4 5
3.数组的初始化:
int array[5]={1,2,3,4,5};//方式1
int array[5]={0};//方式2,花括号中的单个值为来初始化数组
int array[5]={};//方式3,所有元素将赋值为0
三目运算:允许在一行代码中执行条件判断和赋值操作
variable=(一个表达式)?value 1:value 2;
//如果条件值为真,则三目运算符就会返回 value 1,否则返回 value 2
应用场景:
1.简化条件判断:简化if-else结构
如:
if (x>y)
z=x;
else
z=y;
可简化为
z=(x>y)?x:y;
2.赋值操作
如:
if (x>0)
y=1;
else
y=-1;
可简化为
y=(x>0)?1:-1;
指针
1.若有代码int a=10,*p;
p是指针,也是一个变量,且是一个只能用来存放地址的变量
2.若有代码int a=10,*p;p=&a
当执行了上面的代码,会说**"p指向了a”,其实就是“p指针变量存放了a的地址”。
变量定义时的 * 说明该变量时一个指针,调用语句中的 * 表示指针指向变量中的值
3. * p++和(*p)++的区别是:前者等价于 * (p++)先获取p当前所指的元素的值,然后p指针+1(p指针向后移动一个单元,一般用在数组中,普通变量会越界);后者仅仅时p所指的变量的值+1
4.如果调用函数传递的是地址,那么被调函数中的形参就需要使用指针接收,在函数中对指针所指的变量值的改变,会影响到调用函数的变量值。
#include <stdio.h>
viod myfun (int*a,int*b)
{
int t;
t=*a;*a=*b;*b=t;
}
int main ()
{
int a=10,b=5;
printf ("交换前,a=%d,b=%d\n",a,b);
myfun (&a,&b);
printf("交换后,a=%d,b=%d\n",a,b);
return 0;
}
执行结果:
交换前,a=10,b=5
交换后,a=5,b=10