第6次

 

- linux C 第 n 

 

度以及任务

1、位运算

2、预处理

3、编码规范

4、指针

5、数组

 

务完成情况

明本日任务是否按

,开发的代码量)

 

1、位运算:& | >> <<

(1)“无符号数”,“按位左移或右移”

(2)按位与运算---通常对某些位清0或保留某些位;按位或运算---通常用来将源操作数某些位置1,其他位不变;异或----使特定值取反

(3)32位进制转化16进制。’0’、’a’。

(4)不引入第三方变量,值互换:A、异或 B、+、-。

2、预处理:

    傻瓜式操作,不安全,容易出错。

    特点:省去函数调用返回的时间,省去了给形参分配空间和释放。

 

宏函数(用编译时间换内存空间和运行时间)

        适用:频繁调用且功能短小的函数

3、指针:

    (1)指针是一个变量,保存的是地址(作用:直接访问硬件)

    (2)指针类型是根据存储的地址的类型

    (3)*取值运算符,&取地址

(4)Int *pp=&p;int ***ppp =&pp

      多维指针的作用:保存前一维指针变量的地址

    (5)万能指针void*:可以接收任何类型指针的值

    (6)野指针

4、数组:

    对一维数组的地址取值等于一维数组首元素地址

    *(*(aa+i)+j):

        aa+i:二维数组中第i+1个一维数组的地址

        *(aa+i):二维数组中第i+1个一维数组的首元素的地址

        *(aa+i)+j:二维数组中第i+1个一维数组的第j+1个元素的地址

        *(*(aa+i)+j):二维数组中第i+1个一维数组的第j+1个元素的值

 

发中出现的问题汇总

 

 

解决问题

 

 

发收获

 

 

 

#include
'stdio. h
void print1(char *ptr )
printf("ptr= %s\n" ,ptr);
void print2(char (*ktr)[50])
int i;
for(i=0;i<2;i++)
printf("ktr[%d]= %s\n" ,i,*(ktr +i));
void print3(char (*str)[2][50])
inti
int j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("str[%d][%d]= %s\n" ,i,j,*(*(str+i)+j));
}
int main()
char ptr[50] = "hello";
char ktr[2][50] = {"hello1" ,"hello2"};
char str[2][2][50] = {{"hello3" ,"hello4"},{"hello5" ,"hello6"}};
print1(ptr );
print2(ktr );
print3(str );
return 0;
}

 


LS@zxc-vir tua L-machine:~/0708$ gcc demo. C
LS@zxc -virtuaL-machine:~/0708$ . /a. out
ptr= hello
ktr[0]= hello1
ktr[1]= hello2
str[0][0]= hello3
str[0][1]= hello4
str[1][0]= hello5
str[11[ 11= hello6

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值