Linux编程之C语言基础4
1、函数传参 int min_func( int a , int b) // 函数的形参a、b在调用的时候,等价于a和b被赋值了{return (a>b ? b : a );} int main ( void ){int x = 100; ----- 实参int y = 200; ----- 实参int min ;min = min_func ( x , y);-----在函数调用的时候用实际值的参数给函数的形参赋值 printf(“min = %d \n”, min );}

3、对应字符数组的操作, 可以有另一个处理方法: voi蟠校盯昂d upper_case(char str[ ] ) // 虽然定义成数组形式,但是本质还是个指针{ int i ; printf("sizeof(str) = %ld \n", sizeof(str)); // 最关键的是和sizeof结合的时候得到的是指针大小(64位机 8Bytes) printf("sizeof(str[0]) = %ld \n", sizeof(str[0])); // 对象依旧是char , 大小为1 // for(i=0; i<sizeof(str)/sizeof(str[0]); i++) NG sizeof(str)/sizeof(str[0]恒为8 for(i=0; str[i] != ‘\0’; i++)// 根据字符串尾来处理 { if(str[i] >='a' && str[i] <= 'z') str[i] -= ('a'- 'A');// 97 - 65 } printf("str : %s \n", str);}

5、函数:定义---- 返回值类型 函数名 ( 形参类型 形参名列表)int func ( short a , int x ){实现内容}调用----被调用函数中需要使用怎么样的参数,该被调用函数会返回怎样的信息给我们 1: 参数可以是调用函数中的变量、全局变量、常量, 使用这些值给被调用函数中的形参直接赋值main(){func( 100 , 200 ) ;// 形参a等价于100, b等价于200}2: 这被调用函数的返回值,有没有什么作用函数的返回值通常根据需要来处理通常返回的是数值就要处理,如果返回的是处理过程的的状态就可以根据需要处理~声明 : 仅仅是告诉编译器要调用的函数的返回值类型和形参类型int func( short , int );
6、指针1: 定义(依宏氽墓指针变量不但包括了地址值,还包括了对象的信息)指针是指针变量, 指针变量是存放地址的变量在32位机,地址寻址范围就是 0x00000000 ~ 0xFFFFFFFF 指针变量也就是4B的在64位机,地址寻址范围就是0x00 00 00 00 00 00 00 00 ~ 0xFF FF FF FF FF FF FF FF 指针变量也就是8B的定义指针需要留意它的类型 定义时候的*表示定义的是指针变量1) 指针类型 * 指针变量名 ;char * q ;int * p ;2) 指针类型 * 指针变量名 = 初值 ;char * q = NULL ;// NULL是唯一一个可以直接给指针赋值的常量int * p = NULL;int a = 100 ;int * qq = &a ; 把a的地址给了qq// 用其它同类型变量的地址给指针变量赋值char * pp = &a ; 类型不一致, 强制类型转换,重点关注!

7、2指针变量的使用1) 直接使用指针变量 ,p始终代表地址一般是对指针变量进行赋值或者判断 或者是运算int a = 100;int * p = NULL ;p = &a ;// p 的值为a的地址a = 200; // a 的值为200if(p == NULL) ******82) 使用指针变量的解引用 , *p代表的是地址中的数据,如a 值int a = 100;int * p = NULL ;p = &a ;// p 的值为a的地址*p 就可以知道a的地址中有什么数据应用场景: if(*p == 0 ) // 读值做判断*p = 200 ; // 对a重新赋值为200int b = *p // 读值*p 参与运算*p 就是去到p所知道的房子里面去取数据补充几张练习题图:
